齐博整站/地方门户SQL注入漏洞

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

### 简要描述: 继 http://wooyun.org/bugs/wooyun-2014-079938 后第二发,依旧是直接注入非盲注,绝不鸡肋。 看看乌云的奖励怎么样,好的话还有第三发。 ### 详细说明: 一个比较有意思的点,因为安全策略造成的注入。 就拿齐博整站系统为例。 看到/member/userinfo.php,112到114行: ``` //过滤不健康的字 $truename=replace_bad_word($truename); $introduce=replace_bad_word($introduce); $address=replace_bad_word($address); ``` 这几句过滤代码,意思是想过滤一些“不和谐”的词语。那我们看看这个replace_bad_word函数。 ``` function replace_bad_word($str){ global $Limitword; @include_once(ROOT_PATH."data/limitword.php"); foreach( $Limitword AS $old=>$new){ strlen($old)>2 && $str=str_replace($old,trim($new),$str); } return $str; } ``` 实际上是一个str_replace,将旧的“不和谐”词语替换成新的“和谐”词语。那么替换列表从哪来?看看data/limitword.php: ``` <?php $Limitword['造反']='造**'; $Limitword['法轮功']='法**功'; ``` 就这两个,$Limitword并没有初值。而且include之前有global $Limitword。齐博cms是将GET和POST变量注册成全局变量了,所以global取到的可以是$_POST[Limitword]或$_GET[Limitword]。也就是说$Limitword是我们可以控制的。 也就是说,我们可以控制str_replace函数的三个参数。不知道还有没有人记得ecshop曾经的一个注入漏洞(http://zone.wooyun.org/content/2700),原理相同,我再说一遍。...

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