【即将关站通知●已关闭注册功能】,倒计时剩余:计算中...

Discuz!X.3.4 ML任意代码执行漏洞修复(discuz多国语言版)


0X1 漏洞描述

2019年7月11日,网络上出现了一个Discuz!ML远程代码执行漏洞的PoC,研究员验证对discuz x3.4进行全面的网站渗透测试的时候,发现discuz多国语言版存在远程代码执行漏洞,该漏洞可导致论坛被直接上传webshell,直接远程获取管理员权限,linux服务器可以直接执行系统命令,危害性较大,关于该discuz漏洞的详情,我们来详细的分析看下。攻击者能够利用该漏洞在请求流量的cookie字段中(language参数)插入任意代码,执行任意代码,从而实现完全远程接管整个服务器的目的,该漏洞利用方式简单,危害性较大。漏洞影响范围包括如下版本。
Discuz ML! V3.X存在代码注入漏洞,
攻击者通过精心构建的请求报文可以直接执行恶意的PHP代码,
进一步可获取整个网站的服务器权限。

漏洞影响版本:

Discuz!ML v.3.4,
Discuz!ML v.3.2,
Discuz!ML v.3.3 codersclub.org的产品

Discuz!ML是一个由CodersClub.org创建的多语言,集成,功能齐全的开源网络平台,

用于构建像“社交网络”这样的互联网社区。使用这些软件创建的数百个论坛包括v3.2,v3.3,v3.4。
1.3如何区分Discuz!ML网站

通常,这些站点包含以下类型的页脚或站点的左下侧。

Discuz! ML v.3.4、Discuz! ML v.3.3、Discuz! ML v.3.2
源码下载链接:https://bitbucket.org/vot/discuz.ml/downloads/


0X2 漏洞分析!

根据公告定位文件source/module/portal/portal_index.php第32行
 

查看问题函数上方查看定义函数以及关联文件的位置,可以看到template函数在/source/function/function_core.php中,继续跟进
 


问题代码如下所示。

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

程序将缓存文件写在了/data/template/目录下,文件名由DISCUZ_LANG等多个变量组成,问题就出在这儿了,看看DISCUZ_LANG的值是哪儿获取来的:
 


可以看到从程序全部变量$_G[‘config’][‘output’][‘language’]中获取了该值。继续跟进看看该值可以定位到/source/class/discuz/discuz_application.php:
 


在304行,系统通过Cookie获取了语言的值,并在341行定义了前面要找的DISCUZ_LANG,值为Cookie中获取到的lng。可以看到整个过程没有任何的过滤。整个流程即就是:外部参数‘ lng。可以看到整个过程没有任何的过滤。整个流程即就是:外部参数`lng。可以看到整个过程没有任何的过滤。整个流程即就是:外部参数‘lng(即language语言)可控,导致template函数生成的临时模板文件名可操纵,插入自己的代码,最终include_once`包含一下最终导致了代码注入。那这里可以搜一下其他的可利用点,全局查找:
 

大约有60多个点可以用的。

0X3 漏洞利用

访问论坛主页,在Cookie的language字段值后面拼接php代码:

  1. ‘.phpinfo().’
复制代码

 


执行命令获得管理员权限:
 

0X4 漏洞修复
对discuz的版本进行全面的升级,在language参数值中进行全面的安全过滤,限制逗号,以及闭合语句的执行,还有\斜杠都一些特殊恶意代码进行拦截,必要的话对其进行转义,如果对代码不是太熟悉的话,也可以找专业的网站安全公司来进行漏洞修复,国内也就SINE安全公司,绿盟,启明星辰比较专业。再一个对discuz目录的权限进行安全分配,限制data目录的脚本执行权限,防止PHP脚本的运行,最重要的就是做好网站的安全防护。
打开 source/class/discuz/discuz_application.php
找到
  1. if(!$lng) {
复制代码

修改为
  1. if(!preg_match("#^[\w]+$#i", $lng)){
  2.         $lng = '';
  3. }
  4. if(!$lng) {
复制代码

收藏 邀请

路过

雷人

握手

鲜花

鸡蛋


hh0579

感谢感谢

2019-9-17 06:58 引用

在线支持
关闭
欢迎来到魔趣吧
如果你有建站技术问题、仿站需求、模板插件修改需求,请联系我们的技术支持!高效率,低价格的帮你搞定!
请认准魔趣吧唯一官网:www.moqu8.com,谨防假冒网站!

一般问题请到【求助区】发帖咨询(免费)!

邮箱咨询:
winkill2012@qq.com

邮箱咨询需注明:资源地址+本站用户名+具体问题,三者缺一不做处理。非本站资源不处理!
在线支持

关于魔趣吧|魔趣建站

魔趣吧,志在打造全国最大的建站资源共享平台。 本站提供海量免费的建站资源,包括WordPress模板、Discuz精仿模板、PHPWind模板、phpcms模板、Discuz精仿插件、帝国cms模板、织梦模板等上万精品模板!同时,提供各种建站素材、JS特效、整站程序源码!
服务中文站长,传播分享精神!建站,就来魔趣吧!!
2015-2024 魔趣吧 ( 豫ICP备2021024354号 )   豫公网安备41030402000182号 百度统计
HTTPS安全认证
|网站地图 | 已运行:天 
温馨提示:本站所有资源、教程、源码,不得用于非法站点及用途,否则,本站将终止提供任何服务! Powered by Discuz! Licensed