Discuz!<=3.4后台基于文件内容的二次注入

前言

即使是后台漏洞,但是漏洞触发原理其实很有趣,二次注入一直关注数据库的插入查询触发,忽视其他可能的隐患点.

漏洞成因

经过addslashes存入文件中,从文件中取出字符,转义符号丢失,造成二次注入

漏洞分析

后台路由形式:?action=xxx => ../admincp_xxx.php

upload/source/admincp/admincp_setting.php

登录后台后,可以修改UC_APPID值,传入参数为$settingnew['uc']['appid']

成功写入恶意UC_APPID后,执行更新读取新的配置信息

upload/uc_client/model/base.php

最后在note_exists方法中触发注入

调用栈如下

漏洞复现

写入sql语句

参考链接

Discuz! X系列全版本后台Sql注入漏洞