qibocms地方门户系统注入漏洞很多类似的 随便找个地方把。

首先注册个会员。

在dianping/post.php中

if($action=="postnew") { if($webdb[ForbidPostMore]){ if($db->get_one("SELECT * FROM {$_pre}content WHERE uid='$lfjuid' LIMIT 1")){ showerr("系统设置每人只能发布一个商铺!"); } } if(!check_rand_num($_POST["$webdb[rand_num_inputname]"])){ showerr("系统随机码失效,请返回,刷新一下页面,再重新输入数据,重新提交!"); } if(!$postdb[city_id]){ showerr("请选择城市"); } /*验证码处理*/ if($webdb[Info_GroupPostYzImg]&&in_array($groupdb['gid'],explode(",",$webdb[Info_GroupPostYzImg]))){ if(!$web_admin&&!check_imgnum($yzimg)){ showerr("验证码不符合,发布失败"); } } $postdb['list']=$timestamp; if($iftop){//推荐置顶 @extract($db->get_one("SELECT COUNT(*) AS NUM FROM `{$_pre}content$_erp` WHERE list>'$timestamp' AND fid='$fid' AND city_id='$postdb[city_id]'"));


让哥来发布个点评。



@extract($db->get_one("SELECT COUNT(*) AS NUM FROM `{$_pre}content$_erp` WHERE list>'$timestamp' AND fid='$fid' AND city_id='$postdb[city_id]'"))



来看看这个语句。 {$_pre}content$_erp 来看看这个文件中的$_erp哪里来的
 

可以看到 我们的这个语句位于 173行。



而对$_erp 赋值是在187行。 那么相当于我们173行的这个$_erp就没有初始化了。



结合qibocms 伪全局机制 那么我们就可以控制173行的这个$_erp 来达到注入的效果。





dianping/post.php?action=postnew&fid=11&postdb[address]=xx&postdb[city_id]=x&_erp=aaa&iftop=1&yzimg=a1df

构造一下

qibocms地方门户系统注入漏洞

成功出数据。

___________________________________________________________________________



测试demo。

漏洞修补方法:把 $_erp=$Fid_db[tableid][$fid]; 放在前面