文件上传之服务端绕过(upload-labs第二关)

文章目录

    • 第一章 服务器端检测--MIME 类型
    • 第二章代码审计-源代码
    • 第三章MIME服务器端绕过案例
        • 第一步 上传.jpg文件 上传成功 查看图片
        • 第二步 上传.php文件 查看提示错误信息
        • 第三步 使用burp抓包 更改type类型
        • 第四步 查看上传的是否成功执行
        • 第五步 上传一句话木马 蚁剑进行连接
    • 免责声明

第一章 服务器端检测–MIME 类型

MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准。MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。
【https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types】
常见的MIME 类型如下

文件扩展名 Mime-Type
.js application/x-javascript
.html text/html
.jpg image/jpeg
.pdf application/pdf
.png image/png

在HTTP 协议中,使用Content-Type 字段表示文件的MIME 类型。当我们上传文件的时候,抓到HTTP 数据包。

第二章代码审计-源代码

在服务器端会检测Content-Type 类型,upload-labs 第二关,经典的代码如下

if (isset($_POST['submit'])) {
    if (file_exists($UPLOAD_ADDR)) {
        if (($_FILES['upload_file']['type'] == 'image/jpeg') || ($_FILES['upload_file']['type'] == 'image/png') || ($_FILES['upload_file']['type'] == 'image/gif')) {
            if (move_uploaded_file($_FILES['upload_file']['tmp_name'], $UPLOAD_ADDR . '/' . $_FILES['upload_file']['name'])) {
                $img_path = $UPLOAD_ADDR . $_FILES['upload_file']['name'];
                $is_upload = true;
            }
        } else {
            $msg = '文件类型不正确,请重新上传!';
        }
    } else {
        $msg = $UPLOAD_ADDR.'文件夹不存在,请手工创建!';
    }
}

由于服务器在检测Content-Type 类型的时候,取得的变量来自于用户,所以可以用Burp 抓包,修改这个字段,使其合法,即可绕过限制上传任意文件。
文件上传之服务端绕过(upload-labs第二关)_第1张图片

第三章MIME服务器端绕过案例

第一步 上传.jpg文件 上传成功 查看图片

文件上传之服务端绕过(upload-labs第二关)_第2张图片文件上传之服务端绕过(upload-labs第二关)_第3张图片文件上传之服务端绕过(upload-labs第二关)_第4张图片

第二步 上传.php文件 查看提示错误信息

文件上传之服务端绕过(upload-labs第二关)_第5张图片文件上传之服务端绕过(upload-labs第二关)_第6张图片

第三步 使用burp抓包 更改type类型

文件上传之服务端绕过(upload-labs第二关)_第7张图片文件上传之服务端绕过(upload-labs第二关)_第8张图片
文件上传之服务端绕过(upload-labs第二关)_第9张图片文件上传之服务端绕过(upload-labs第二关)_第10张图片

第四步 查看上传的是否成功执行

文件上传之服务端绕过(upload-labs第二关)_第11张图片

第五步 上传一句话木马 蚁剑进行连接

文件上传之服务端绕过(upload-labs第二关)_第12张图片文件上传之服务端绕过(upload-labs第二关)_第13张图片
文件上传之服务端绕过(upload-labs第二关)_第14张图片文件上传之服务端绕过(upload-labs第二关)_第15张图片文件上传之服务端绕过(upload-labs第二关)_第16张图片

免责声明

本文档供学习,请使用者注意使用环境并遵守国家相关法律法规!
由于使用不当造成的后果上传者概不负责!

你可能感兴趣的:(web渗透)