uplload 通关纪实 pass16

Posted 安全界 的彭于晏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uplload 通关纪实 pass16相关的知识,希望对你有一定的参考价值。

exif_imagetype(string $filename)//读取一个图像的第一个字节并检查其签名
因此此函数需要开启php_exif模板,php_exif在phpstudy主界面–其他选项菜单–PHP扩展及设置–PHP扩展里面。
在这里插入图片描述
此外还需要在php.ini(在phpstudy主界面的其他选项菜单–打开配置文件里面)里修改,将;extension=php_exif.dll前面的;去掉,然后保存重启。
在这里插入图片描述
接着操作跟Pass-14和Pass-15的操作一样。

源代码如下:

function isImage($filename){
    //需要开启php_exif模块
    $image_type = exif_imagetype($filename);
    switch ($image_type) {
        case IMAGETYPE_GIF:
            return "gif";
            break;
        case IMAGETYPE_JPEG:
            return "jpg";
            break;
        case IMAGETYPE_PNG:
            return "png";
            break;    
        default:
            return false;
            break;
    }
}

$is_upload = false;
$msg = null;
if(isset($_POST['submit'])){
    $temp_file = $_FILES['upload_file']['tmp_name'];
    $res = isImage($temp_file);
    if(!$res){
        $msg = "文件未知,上传失败!";
    }else{
        $img_path = UPLOAD_PATH."/".rand(10, 99).date("YmdHis").".".$res;
        if(move_uploaded_file($temp_file,$img_path)){
            $is_upload = true;
        } else {
            $msg = "上传出错!";
        }
    }
}

 

首先上传一个gif文件,然后用burp进行抓包:
在这里插入图片描述
然后把包发送给repeater模块,点击Go之后成功上传:
在这里插入图片描述
访问如下图所示的网址,成功访问到网页:
在这里插入图片描述
然后连接菜刀:
在这里插入图片描述
之后成功访问到目录:
在这里插入图片描述

以上是关于uplload 通关纪实 pass16的主要内容,如果未能解决你的问题,请参考以下文章

uplload 通关纪实 pass16

uplload 通关纪实 pass18

uplload 通关纪实 pass18

uplload 通关纪实 pass18

uplload 通关纪实 pass14

uplload 通关纪实 pass14