在前面的步骤上,添加了对图片信息检测,这里我把源码拉下来了
```php <?php error_reporting(0); if ($_FILES[“file”][“error”] > 0) { $ret = array(“code”=>2,”msg”=>$_FILES[“file”][“error”]); } else { $filename = $_FILES[“file”][“name”]; $filesize = ($_FILES[“file”][“size”] / 1024); if($filesize>1024){$ret = array("code"=>1,"msg"=>"文件超过1024KB");
}else{
if($_FILES['file']['type'] == 'image/png'){ $arr = pathinfo($filename); $ext_suffix = $arr['extension']; //检测文件后缀名是不是php if($ext_suffix!='php'){ //检查上传文件内容 $content = file_get_contents($_FILES["file"]["tmp_name"]); if(stripos($content, "php")===FALSE && check($content) && getimagesize($_FILES["file"]["tmp_name"])) //检查图片头 { move_uploaded_file($_FILES["file"]["tmp_name"], "upload/".$_FILES["file"]["name"]); $ret = array("code"=>0,"msg"=>"upload/".$_FILES["file"]["name"]); }else{ $ret = array("code"=>2,"msg"=>"文件类型不合规"); } }else{ $ret = array("code"=>2,"msg"=>"文件类型不合规"); } }else{ $ret = array("code"=>2,"msg"=>"文件类型不合规"); }
}
} function check($str){ return !preg_match(‘/php|{|[|\;|log|(| |`/i’, $str); } echo json_encode($ret); ```
- 添加图片文件头然后后续步骤与
web160
相似,日志文件包含 - 上传
.user.ini
- 改写
UA
头,写shell,命令执行即可