### 简要描述: 二次注入。 ### 详细说明: 在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)){...
### 简要描述: 二次注入。 ### 详细说明: 在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)