cmseasy的SQL注射漏洞(附分析和exp)

- AV AC AU C I A
发布: 2025-04-13
修订: 2025-04-13

### 简要描述: cmseasy sql注射漏洞 ### 详细说明: 先看 manage_act.php 174行 ``` if(!session::get('from')) session::set('from',front::$from); ``` 如果 session中没有 from这个的话就设置front类中$from这个为值,我们追追他的$from怎么产生的。 在 front_class.php 312-313 ``` if (isset($_SERVER['HTTP_REFERER'])) self::$from=$_SERVER['HTTP_REFERER']; ``` 看了下,好像没有对 $_SERVER['HTTP_REFERER']做转义处理,系统默认GPC也是不对_SERVER处理的,导致我又可以注射了。 之前发了个已经说到了他session保存在数据库中,有出注入基本就可以控制它整个系统了..( [WooYun: cmseasy 的一个高危漏洞(设计缺陷)](http://www.wooyun.org/bugs/wooyun-2014-076542) ) ---------- 不多说了.上exp,先注册一个号 然后 ``` /cmseasy/index.php?case=manage&act=edit&manage=archive&id=1 来源 http://127.0.0.1/',DATA=0x6F70656E69647C733A313A2232223B,client_ip=' 改为这个 ``` 正当我觉得很顺利的时候,发现webscan360拦截了我, 新版本中 白名单已经失效了..白名单是二维数组,原先是用foreach遍历2次,新版本却只遍历一次,所以永远也不能找到对应的白名单。 还有个蛋疼的地方是 post拦截规则加上了 |' 出现单引号就拦截 由于webscan360对referre用的就是post拦截规则,(这样直接拦截单引号,对用户体验也不够好,比如搜索单引号就拦截了,) 单引号不能使用,想了想 ``` from|s:4:"2222"; ``` 结构是这样的,哪我 把2222 换成 ";openid|s:1:"2 能不能闭合呢. 结果处理成这样了 ``` (不知道它如何...

0%
暂无可用Exp或PoC
当前有0条受影响产品信息