1. 源码分析
if(isset($_POST['submit'])){
$ext_arr = array('jpg','png','gif');
$file_ext = substr($_FILES['upload_file']['name'],strrpos($_FILES['upload_file']['name'],".")+1);
if(in_array($file_ext,$ext_arr)){
$temp_file = $_FILES['upload_file']['tmp_name'];
$img_path = $_GET['save_path']."/".rand(10, 99).date("YmdHis").".".$file_ext;
if(move_uploaded_file($temp_file,$img_path)){
$is_upload = true;
} else {
$msg = '上传出错!';
}
} else{
$msg = "只允许上传.jpg|.png|.gif类型文件!";
}
}
采用白名单校验,但是文件路径是用get的一个参数拼接的,可以用%00截断。
2. 上传
2.1 前提条件
- php 版本小于 5.3.4
- 关闭magic_quotes_gpc
用5.4.45版本,上传出错
2.2 5.2版本上传
上传目录下新建了个123.php
用浏览器可以正常访问