abcEditor上传绕过

<?php
$fileup   = 0; //上传功能开关 0打开 1关闭
$filesize = 200; //文件大小单位KB 1M=1024KB
$filepath = './pic/'; //文件保存目录 后面要加斜杠/
header('Content-Type: text/html; charset=UTF-8');//页面编码
if(isset($_GET['up'])){
    if($fileup) exit ('上传功能已关闭!');
    $fileend = end(explode('.',basename($_FILES['file']['name'])));//取得后缀名
    //判断文件类型和大小
    if(
        (
        ($_FILES["file"]["type"] == "image/gif")
        ||
        ($_FILES["file"]["type"] == "image/jpeg")
        ||
        ($_FILES["file"]["type"] == "image/pjpeg")
        ||
        ($_FILES["file"]["type"] == "image/x-png")
        ||
        ($_FILES["file"]["type"] == "image/bmp")
        )
        &&
        $_FILES['file']['size'] < 1024*$filesize
    ){
        if(!file_exists($filepath)) mkdir ($filepath);//判断文件保存目录是否存在 没有则创建
        date_default_timezone_set('PRC');//中国时间
        $fileurl = $filepath.date('YmdHis.').$fileend;//文件路径 使用年月日时分秒作为文件名
        move_uploaded_file($_FILES['file']['tmp_name'],$fileurl);//移动文件到指定路径
    }else{
        exit('<script>alert("文件大小或类型错误!");location="?";</script>');
    }
}
?>

文件只是验证了$_FILES["file"]["type"]。没有其他地方进行验证。

可以修改POST信息中的$_FILES["file"]["type"]文件类型为图片的类型就可绕过。

abcEditor上传绕过

 提交POST后,关闭代理,就能发现成功上传了PHP了。

abcEditor上传绕过