Discuz!X3.x全版本后台UC漏洞SQL注入写文件[截至X3.4 R20191201]
1、简述Discuz! X系列全版本 截止到 Discuz! X3.4 R20191201 UTF-8二次注入利用条件有限,还是挺鸡肋的。2、复现环境同上3、漏洞复现报错注入:
写文件:
4、漏洞分析漏洞原因:经过addslashes存入文件中,从文件中取出字符,转义符号丢失,造成二次注入由前几个的分析已经明白了dz的路由形式,此处的路由解析如下:?action=xxx => ../admincp_xxx.php跟进source/admincp/admincp_setting.php,2566行,接收参数修改UC_APPID值。$configfile = str_replace("define('UC_APPID', '".addslashes(UC_APPID)."')", "define('UC_APPID', '".$settingnew['uc']['appid']."')", $configfile);
$fp = fopen('./config/config_ucenter.php', 'w');
if(!($fp = @fopen('./config/config_ucenter.php', 'w'))) {
cpmsg('uc_config_write_error', '', 'error');
}
@fwrite($fp, trim($configfile));
@fclose($fp);
成功写入恶意UC_APPID后,执行更新读取新的配置信息,3415行:if($updatecache) {
updatecache('setting');
最后在uc_client/model/base.php的note_exists方法中触发注入function note_exists() {
$noteexists = $this->db->result_first("SELECT value FROM ".UC_DBTABLEPRE."vars WHERE name='noteexists".UC_APPID."'");
if(empty($noteexists)) {
return FALSE;
} else {
return TRUE;
}
}
页:
[1]