黑帽联盟

标题: Discuz! 任意文件删除漏洞,优化加强安全性 [打印本页]

作者: yun    时间: 2017-10-2 12:43
标题: Discuz! 任意文件删除漏洞,优化加强安全性
本帖最后由 yun 于 2017-10-2 12:46 编辑

discuz任意文件删除漏洞

dz任意文件删除漏洞

Crossday Discuz! Board(简称 Discuz!)是北京康盛新创科技有限责任公司推出的一套通用的开源的社区论坛软件系统。采用 PHP 和 MySQL 构建的性能优异、功能全面的社区论坛平台。利用特殊构造的请求触发可参与文件删除操作,导致了任意文件删除漏洞的发生。早在2014年有白帽子向官方报告了一个类似的漏洞,但是由于没有修补全导致还有其他方式可以进行利用。

*由于Discuz官方暂未发布正式补丁及升级包,本站对漏洞细节暂不公开

影响范围
Discuz! X3.3
Discuz! X3.2
Discuz! X3.1
Discuz! X2.5

缓解措施
根据参考连接里的commit编辑upload/source/include/spacecp/spacecp_profile.php文件,删除和unlink相关代码。

文件发生了变化, 影响行数: (第5、6、14、20、24),总共5行
  1. @@ -178,8 +178,6 @@ if(submitcheck('profilesubmit')) {
  2.           if($_GET['deletefile'] && is_array($_GET['deletefile'])) {
  3.                   foreach($_GET['deletefile'] as $key => $value) {
  4.                           if(isset($_G['cache']['profilesetting'][$key]) && $_G['cache']['profilesetting'][$key]['formtype'] == 'file') {
  5.                                 @unlink(getglobal('setting/attachdir').'./profile/'.$space[$key]);
  6.                                  @unlink(getglobal('setting/attachdir').'./profile/'.$verifyinfo['field'][$key]);
  7.                                   $verifyarr[$key] = $setarr[$key] = '';
  8.                           }
  9.                   }
  10. @@ -215,17 +213,14 @@ if(submitcheck('profilesubmit')) {
  11.                                   $attach['attachment'] = dhtmlspecialchars(trim($attach['attachment']));
  12.                                   if($vid && $verifyconfig['available'] && isset($verifyconfig['field'][$key])) {
  13.                                           if(isset($verifyinfo['field'][$key])) {
  14.                                                  @unlink(getglobal('setting/attachdir').'./profile/'.$verifyinfo['field'][$key]);
  15.                                                   $verifyarr[$key] = $attach['attachment'];
  16.                                           }
  17.                                           continue;
  18.                                   }
  19.                                   if(isset($setarr[$key]) && $_G['cache']['profilesetting'][$key]['needverify']) {
  20.                                           @unlink(getglobal('setting/attachdir').'./profile/'.$verifyinfo['field'][$key]);
  21.                                           $verifyarr[$key] = $attach['attachment'];
  22.                                           continue;
  23.                                   }
  24.                                   @unlink(getglobal('setting/attachdir').'./profile/'.$space[$key]);
  25.                                   $setarr[$key] = $attach['attachment'];
  26.                           }
  27.    
复制代码
参考链接:https://gitee.com/ComsenzDiscuz/DiscuzX/commit/7d603a197c2717ef1d7e9ba654cf72aa42d3e574

作者: feihu    时间: 2017-10-2 19:53
我擦,漏洞,咱们论坛肯定补了
作者: huangjia    时间: 2017-10-2 19:55
soga,原来如此
作者: heimao    时间: 2017-10-6 07:36
之前就听说的
作者: tang7738    时间: 2017-11-10 19:03
了解过,加深印象。
作者: carpwind    时间: 2020-7-10 09:07
这个厉害了嘛




欢迎光临 黑帽联盟 (https://bbs.cnblackhat.com/) Powered by Discuz! X2.5