前言
本文依托I春秋实验复现而成,链接:https://www.ichunqiu.com/course/60909,使用了PHPMyWind存储XSS漏洞(CVE-2017-12984)。
实验目的
了解PHPMyWind漏洞的危害
学习漏洞代码的分析
掌握PHPMyWind漏洞的验证
实验环境
操作机:Windows XP
IP:172.16.11.2
目标网址:http://www.test.ichunqiu:8080/
工具下载地址:file.ichunqiu.com/ak4798ka/
实验工具
Firebug:FireFox浏览器下的插件,集HTML查看和编辑、Javascript控制台、网络状况监视器于一体,是开发JavaScript、CSS、HTML和Ajax的得力助手,本实验使用其修改Cookie功能
Burp suite: Burp Suite 是用于测试web
应用程序的集成平台,本实验主要使用其抓包、改包、发包功能
实验步骤
步骤1:漏洞验证
首先我们来看一下源码,处理客户留言内容的关键代码在message.php文件的第29行和34行
1 | \$content = htmlspecialchars(\$content); |
我们先看content参数,程序会使用htmlspecialchars() 函数把预定义的字符 “<”
(小于)和 “>” (大于)转换为 HTML
实体,进行过滤,然后存储至数据库中,这里并没有问题。
然后,我们再看看管理员修改留言的处理方式,代码在admin/
message_update.php文件的第26行
1 | \<td><input type=\"text" name=\"content" |
管理员编辑留言,编辑器直接读取content内容并显示,却并未进行转义操作,所以导致存储型XSS漏洞的出现。
上面已经分析了漏洞的成因,接下来,我们开始验证这个漏洞。
首先,访问file.ichunqiu.com/ak4798ka/下载实验文件,方便后续操作
然后,使用桌面的Firefox浏览器打开http://www.test.ichunqiu:8080/ ,访问网站首页。
对其进行添加留言操作(留言部分内部是简单的XSS语句)
1 | \<img src=x onerror = alert(666); \> |
留言成功。
下一步我们从另一个浏览器登录进入后台页面。
登录成功。
接下来我们尝试查看漏洞。
查看成功,触发XSS。
步骤2:利用XSS获取cookie
首先我们利用第三条语句
1 | \<img src=x onerror = |
这条语句的作用主要在于将cookies回弹回来。
上传过程不再赘述。
打开nc.exe 通过目标端口监听。当对方管理员触发该XSS时,cookie将回弹回来。
监听成功,将cookie存下。
回到攻击者的浏览器,我们将cookie导入。
刷新之后可以直接进入管理员网页。
步骤3:扩大战果
当进入后台页面之后,我们需要扩大战果,可以考虑利用菜刀连接进入。
检查上传设置。一般来说网页都会禁止上传php文件,但是我们可以利用图片上传绕过。
将bmp格式改为php 文件。(php后面有个空格)这样上传图片之后会对其进行重命名并且加入后缀。
编写一个带有一句话木马的文件并且更名为png格式。
开始准备上传。
这里我们利用burpsuite代理模式,监视每一个包。
对上传包进行修改,后缀改为.php 格式(php后面有个空格)。
上传成功后开启菜刀。
菜刀远程连接进网站。
连接成功。