upload-pass12

源码截取

$is_upload = false;
$msg = null;
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 = $_POST['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类型文件!";
    }
}
?>

POST传值,修改十六进制,进行00截断

 在post传输的路径中加上想要传输的文件名,eval.php在写为eval.php+以便于在16进值中查找

 

 将16进制的+(2b)改为00  (或者记得php的16进制为70 68 70 在后面把16进制改为00然后放包)以进行00截断

 

 就可以上传成功

Tip:

同样利用00截断需要

(1)php版本必须小于5.3.4

(2)打开php的配置文件php-ini,将magic_quotes_gpc设置为Off

posted @ 2019-09-23 20:38  X38072  阅读(245)  评论(0)    收藏  举报