一、漏洞综述
漏洞类型:代码执行漏洞
影响系统及版本:Discuz!ML V3.2-3.4 Discuz!x V3.2-3.4
漏洞原因:Discuz!ML 系统对cookie中的l接收的language参数内容未过滤,导致字符串拼接,从而执行php代码。
二、环境搭建
Centos7 PHP5.6
漏洞源码:
链接:https://pan.baidu.com/s/1QFd8rdXn_Je6lOehSLTIWw
提取码:5ka0
http://discuz.ml/download
三、复现利用
环境搭建好了,我们访问下网站
网站没有问题,我们打开burp,直接刷新抓包
在cookies里我们可以看到“CKxv_2132_language=sc”这个参数,即为漏洞点。我们将数据包发送到repeater,进行修改拼接
可以看到成功执行了’phpinfo()’,说明存在这个漏洞
既然可以执行phpinfo(),自然也可以执行别的代码,这里我们可以直接写入php一句话木马
file_put_contents() 函数是把一个字符串写入文件,后面urldecode对一句话进行解码后写入文件,文件名为shell.php,完整一句话为<?php eval($_POST[a]); ?>
从后台我们可以看到一句话木马shell.php已经生成了
用菜刀尝试连接,可以看到,连接成功
因为搭建环境不同复现过程中可能会遇到不同的问题,这里给大家提醒一下:如果一句话木马上传成功后连接不上,那么你要检查一下生成的文件shell.php中的$_POST是否被自动转换成了小写,如果被转换了的话,可以重试URL编码。
discuz!ML的站也是有很多用户在用的,所以这个漏洞危害挺大的。有表格在用并且刚好是这几个版本的话,注意一下哦。
※ 此实验仅供大家学习参考,其他违法行为本人不负任何责任,在此申明!