### 简要描述:
二次注入。
### 详细说明:
在hy/member/homepage_ctrl/pic_fm.php中
```
if(count($pids)<1) showerr("请选择一张图片");
if(!$psid) showerr("请指定一个图集");
foreach($pids as $pid){
if($pid){
$rt=$db->get_one("SELECT url FROM {$_pre}pic WHERE pid='$pid'");
$db->query("UPDATE {$_pre}picsort SET faceurl='$rt[url]' WHERE psid='$psid' AND uid='$uid'");//这里把出库的带入到了update查询当中 来找找入库的
break;
}
}
```
入库的地方挺多 随便找一处把
在hy/member/homepage_ctrl/pic_upload.php中
```
foreach($photoDB[url] AS $key=>$value){
if(!eregi("\.(gif|jpg|jpeg|png|bmp)$",$value)){
delete_attachment($uid,tempdir($value));//限定结尾必须jpg啥的
continue;
}
$picpath = "homepage/pic/".ceil($uid/1000)."/";
$picurl = $picpath.basename($value);//basename不影响
move_attachment($uid,tempdir($value),$picpath); //图片转移目录与加水印
if(!is_file(ROOT_PATH."$webdb[updir]/$picurl")){
$picurl=$value;
}
$Newpicpath=ROOT_PATH."$webdb[updir]/{$picurl}.gif";
gdpic(ROOT_PATH."$webdb[updir]/$picurl",$Newpicpath,150,150);
if(!is_file($Newpicpath)){
copy(ROOT_PATH."$webdb[updir]/{$picurl}",$Newpicpath);
}
$title = filtrate($photoDB[name][$key]);
$title = get_word($title,32);
//echo "INSERT INTO `{$_pre}pic` (`psid` , `uid` , `username` , `title` , `url` , `level` , `yz` , `posttime` , `isfm` , `orderlist` ) VALUES ('$psid', '$uid', '$lfjid', '$title', '$picurl', '0', '1', '$timestamp', '0', '0')";exit;
$db->query("INSERT INTO `{$_pre}pic` (`psid` , `uid` , `username` , `title` , `url` , `level` , `yz` , `posttime` , `isfm` , `orderlist` ) VALUES ('$psid', '$uid', '$lfjid', '$title', '$picurl', '0', '1', '$timestamp', '0', '0')"); //这里把$picurl 带入到了insert当中 入库
$ck++;
```
首先入库一个。
[<img src="https://images.seebug.org/upload/201410/26173038769cee2a3aeabeddad8b78f32acd2847.jpg" alt="15.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201410/26173038769cee2a3aeabeddad8b78f32acd2847.jpg)
转义入库。 然后
[<img src="https://images.seebug.org/upload/201410/26173321cfaf43b1fe5c5a267b5fe71b2ba070a9.jpg" alt="17.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201410/26173321cfaf43b1fe5c5a267b5fe71b2ba070a9.jpg)
出库 导致注入。
构造一下。
[<img src="https://images.seebug.org/upload/201410/2617383595c6dee82a0be96c741a054568167fb2.jpg" alt="18.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201410/2617383595c6dee82a0be96c741a054568167fb2.jpg)
转义入库 这里我把语句输出一下。
然后 出库。
/hy/member/homepage_ctrl.php?atn=pic_fm&pids[]=45&psid=3313
[<img src="https://images.seebug.org/upload/201410/26173916dac82d5c9c3b3c146191de2e16930260.jpg" alt="19.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201410/26173916dac82d5c9c3b3c146191de2e16930260.jpg)
出数据。
demo 测试:
[<img src="https://images.seebug.org/upload/201410/261740217768a5050a55bf89676d08e1f25b7e56.jpg" alt="20.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201410/261740217768a5050a55bf89676d08e1f25b7e56.jpg)
入库
出库
[<img src="https://images.seebug.org/upload/201410/2617422143d618520c64f6b69c74c31a1bae2981.jpg" alt="21.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201410/2617422143d618520c64f6b69c74c31a1bae2981.jpg)
构造一下 可以看update哪个column 出数据的。
### 漏洞证明:
[<img src="https://images.seebug.org/upload/201410/26173916dac82d5c9c3b3c146191de2e16930260.jpg" alt="19.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201410/26173916dac82d5c9c3b3c146191de2e16930260.jpg)
暂无评论