找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 578|回复: 0

[BUG反馈] Discuz! X3.4 R20191201后台任意文件删除漏洞[版块burp拦截提交]

[复制链接]
已绑定手机

3312

主题

1480

回帖

4802

积分

管理员

积分
4802
发表于 2020-8-10 09:26:17 | 显示全部楼层 |阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
1、简述
后台任意文件删除,需要有管理员的权限。
2、复现环境
同上
3、漏洞复现
登陆后台,进入论坛->模块管理->编辑板块,使用burp拦截提交的数据。
Discuz! X3.4 R20191201后台任意文件删除漏洞[版块burp拦截提交] 后台,任意,文件,删除,漏洞

修改请求包,添加参数 &replybgnew=../../../testfile.txt&delreplybg=1
Discuz! X3.4 R20191201后台任意文件删除漏洞[版块burp拦截提交] 后台,任意,文件,删除,漏洞
发送,查看文件发现被删除。
Discuz! X3.4 R20191201后台任意文件删除漏洞[版块burp拦截提交] 后台,任意,文件,删除,漏洞

4、漏洞分析
分析一下该请求的流程。
请求URL:/dz/upload/admin.php?action=forums&operation=edit&fid=2&replybgnew=../../../testfile.txt&delreplybg=1
在admin.php中接收了action参数,在第58行经过admincpfile函数处理后返回文件路径,并包含该文件。

  1. if($admincp->allow($action, $operation, $do) || $action == 'index') {
  2.         require $admincp->admincpfile($action);
复制代码

看一下该函数的处理过程:
  1. function admincpfile($action) {
  2.         return './source/admincp/admincp_'.$action.'.php';
  3.     }
复制代码
经过处理返回的内容是:./source/admincp/admincp_forums.php,也就来到了漏洞存在的地方。
根据if/else的判断条件,进入else中的代码:
  1. if(!submitcheck('detailsubmit')) {
  2.   ......
  3. }
  4. else{

  5. }
复制代码

造成漏洞的代码:
  1. if(!$multiset) {
  2.   if($_GET['delreplybg']) {
  3.     $valueparse = parse_url($_GET['replybgnew']);
  4.     if(!isset($valueparse['host']) && file_exists($_G['setting']['attachurl'].'common/'.$_GET['replybgnew'])) {
  5.       @unlink($_G['setting']['attachurl'].'common/'.$_GET['replybgnew']);
  6.     }
  7.     $_GET['replybgnew'] = '';
  8.   }
复制代码

$multiset默认为0,只要不给该参数赋值就满足条件进入if语句。
第二个if语句,检查GET参数delreplybg有没有内容,然后做了下检测,检测parse_url函数返回的结果中有没有host这个变量,来确保GET参数replybgnew不是url,但是并不影响传入文件路径。
这里$_G['setting']['attachurl'的值为data/attachment/,再拼接上common/和$_GET['replybgnew'],这样路径就可控了。通过unlink达到文件删除的目的。


我要说一句 收起回复
一花一世界,一叶一追寻。一曲一场叹,一生为一人。
 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图

您的IP:44.200.112.172,GMT+8, 2023-6-8 06:24 , Processed in 0.134620 second(s), 68 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

点击联系客服QQ
扫码联系客服微信