Discuz! $_DCACHE 代码执行漏洞 CNVD-2009-12623

- AV AC AU C I A
发布: 2025-04-13
修订: 2025-04-13

### 测试版本: Discuz 6.x,7.x ### 漏洞成因: 1、使用全局变量 `$GLOBALS['_DCACHE']` 时未作校验,导致攻击者可以在提交中构造恶意代码。 2、php函数 preg_replace() 使用e修饰符时,将替换后的字符串作为php代码执行(eval函数方式), 并使用执行结果作为实际参与替换的字符串。 ### 验证方式: 1、进入本地测试地址:http://127.0.0.1/discuz7.2/Discuz_7.2_SC_UTF8/upload/index.php 2、chrome F12 打开 console 设置 cookie,如图![text](https://images.seebug.org/contribute/7bea432e-01e5-4cf7-b6b8-d4b34835b2eb-setCookie.png) 3、如:依次点击进入【默认模块】->【7.2新增功能及功能强化】 或者直接访问 http://127.0.0.1/discuz7.2/Discuz_7.2_SC_UTF8/upload/viewthread.php?tid=13&extra=page%3D1 便可看到 `phpinfo()` 执行成功。 如图:![](https://images.seebug.org/contribute/3b5b145c-50f6-4443-a503-578881a144e0-phpinfo.png) ### 触发位置 upload/includ/discuzcode.func.php 120 行: ``` $message = preg_replace($GLOBALS['_DCACHE']['smilies']['searcharray'], $GLOBALS['_DCACHE']['smilies']['replacearray'], $message, $maxsmilies); ``` ### 防护方案 过滤用户输入

0%
暂无可用Exp或PoC
当前有0条受影响产品信息