### 简要描述:
应该是qibo的最后一弹了。
### 详细说明:
所测试的 http://down.qibosoft.com/down.php?v=b2b
_________________________________________________________________________
在hy/member/homapage_ctrl/info.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'");
```
$title=filtrate($title); 这里进行了个过滤
```
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;
}
```
这里过滤了单引号 转义符没过滤。
然后就带入到update中 入库了。
在hy/member/cankao.php中
```
$companydb=$db->get_one("SELECT * FROM {$_pre}company WHERE uid='$uid' LIMIT 1");
if(!$companydb[if_homepage]){
showerr("您还没有申请企业商铺,<a href='$Murl/member/post_company.php?action=apply'>点击这里申请企业商铺</a>,拥有自己的商铺");
}
```
这里查询出来了
$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')");
}</code>
然后这里把出库的$companydb[title] 也带入到了查询当中 所以这里我们可以引入转义符了。
然后后面的变量刚好也是可以控制的 所以就可以注入了。
[<img src="https://images.seebug.org/upload/201408/16133215b93c3718c643071dd32aaed1738b21bc.jpg" alt="q1.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201408/16133215b93c3718c643071dd32aaed1738b21bc.jpg)
把名字改成这样 然后
[<img src="https://images.seebug.org/upload/201408/161333250fdf311fc0885fa417cd12ea2e064a37.jpg" alt="q2.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201408/161333250fdf311fc0885fa417cd12ea2e064a37.jpg)
报错了。
构造一下
[<img src="https://images.seebug.org/upload/201408/16133436675ed3ec11f14bd2e69750450723be65.jpg" alt="q3.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201408/16133436675ed3ec11f14bd2e69750450723be65.jpg)
[<img src="https://images.seebug.org/upload/201408/16133445d5ea26109f158ef29f66be5f13526362.jpg" alt="q4.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201408/16133445d5ea26109f158ef29f66be5f13526362.jpg)
成功出数据。
### 漏洞证明:
[<img src="https://images.seebug.org/upload/201408/16133445d5ea26109f158ef29f66be5f13526362.jpg" alt="q4.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201408/16133445d5ea26109f158ef29f66be5f13526362.jpg)
暂无评论