PbootCMS是全新内核且永久开源免费的PHP企业网站开发建设统,是一套高效、简洁、 强悍的可免费商用的PHP CMS源码,但存在SQL注入漏洞,攻击者可构造恶意语句进行获取敏感数据。
影响范围
PbootCMS 3.0.4
app="PBOOTCMS"
源码分析 漏洞代码位置:
coreasicModel.php
当传递的参数$where是一个数组时就遍历数组,当$where是一个索引数组时则:$where_string.=$value。
接下来找到“$where”函数中要传递的代码为索引数组时的代码:
appshomecontrollerParserController.php 在“parserSearchLabel()”方法中,传入的数据被分配到变量“$receive”进行遍历,“$key”被带入“request()”进行过滤。
通过上述方法传入索引数组的值只能包含中文、字母、数字、水平线、点、逗号和空格!它由“htmlspecialchars()”和“addslashes()”编码。最后,它被传递到“$where3”。 “getlists()”中的“$where3”是可控的,它将以“and”的形式进入语句,所以最终造成了SQL注入。
本地复现 默认数据库是sqlite。为了测试方便,我们需要用mysql数据库替换默认数据库
|