齐博CMS b2b系统 二次注入

漏洞作者: '雨。

源码此处下载 http://down.qibosoft.com/down.php?v=b2b 在hy/member/homapage_ctrl/info.php中 [php]$db->query("INSERT INTO `{$_pre}company_fid` VALUES $values"); $title=filtrate($title); $picurl=filtrate($picurl); $fname=filtrate($fname); $my_trade=filtrate($my_trade); $qy_cate=filtrate($qy_cate); $qy_regmoney=filtrate($qy_regmoney); $qy_saletype=filtrate($qy_saletype); $qy_pro_ser=filtrate($qy_pro_ser); $my_buy=filtrate($my_buy); $qy_regplace=filtrate($qy_regplace); $db->query("UPDATE `{$_pre}company` SET `title`='$title', `picurl`='$picurl', `fname`='$fname', `province_id`='{$province_id}', `city_id`='{$postdb[city_id]}', `zone_id`='{$postdb[zone_id]}', `street_id`='{$postdb[street_id]}', `my_trade`='$my_trade', `qy_cate`='$qy_cate', `qy_regmoney`='$qy_regmoney', `qy_saletype`='$qy_saletype', `qy_createtime`='$qy_createtime', `qy_pro_ser`='$qy_pro_ser', `my_buy`='$my_buy', `qy_regplace`='$qy_regplace' WHERE uid='$uid'");[/php] $title=filtrate($title); 这里进行了个过滤 [php]function filtrate($msg){ //$msg = str_replace('&','&',$msg); //$msg = str_replace(' ',' ',$msg); $msg = str_replace('"','"',$msg); $msg = str_replace("'",''',$msg); $msg = str_replace("<","<",$msg); $msg = str_replace(">",">",$msg); $msg = str_replace("\t","    ",$msg); //$msg = str_replace("\r","",$msg); $msg = str_replace(" ","   ",$msg); return $msg; }[/php] 这里过滤了单引号 转义符没过滤。 然后就带入到update中 入库了。 在hy/member/cankao.php中 [php]$companydb=$db->get_one("SELECT * FROM {$_pre}company WHERE uid='$uid' LIMIT 1"); if(!$companydb[if_homepage]){ showerr("您还没有申请企业商铺,点击这里申请企业商铺,拥有自己的商铺"); } //这里查询出来了 $title = filtrate($title); $url = filtrate($url); $description = filtrate($description); if($ck_id){ $db->query("UPDATE `{$_pre}friendlink` SET title='$title', url='$url', description='$description', yz=1 WHERE ck_id='$ck_id';"); }else{ $db->query("INSERT INTO `{$_pre}friendlink` ( `ck_id` , `uid` , `username` , `companyName` , `title` , `url` , `description` , `yz` ) VALUES ('', '$lfjuid', '$lfjid', '$companydb[title]', '$title', '$url', '$description', '1')"); }[/php] 然后这里把出库的$companydb[title] 也带入到了查询当中 所以这里我们可以引入转义符了。 然后后面的变量刚好也是可以控制的 所以就可以注入了。 1 把名字改成这样 然后 2   报错了。 构造一下   1 注入成功

1 条评论

  1. sos

    问下这个是怎么构造的呢??? 没有过滤 \ 但是 ' 过滤了的啊。。。

发表评论