文件上传漏洞实战:第二关MIME验证绕过

张开发
2026/4/13 13:31:36 15 分钟阅读

分享文章

文件上传漏洞实战:第二关MIME验证绕过
1.前言完成第一关后第二关的防护升级了——后端开始检查文件的MIME类型。这次用‘Burp Suite’抓包修改‘Content-Type’,成功绕过2.环境准备靶场upload-labs pass-02地址http://127.0.0.1/upload-labs/Pass-02测试文件test.php文件内容?php phpinfo(); ?3.尝试上传直接上传‘test.php’页面提示“文件类型不正确”4.抓包分析配置burp代理拦截上传请求。找到关键字段‘Content-Typeapplication/x-php’图一burp抓包截图5.修改请求将‘Content-Type’的值从‘application/x-php’修改为‘image/jpeg’6.上传成功点击‘Forward’放行浏览器显示上传成功图二浏览器上传成功页面截图7.验证结果访问‘http://127.0.0.1/upload-labs/upload/test.php’看到PHP信息页面图三phpinfo页面截图8.原理分析第二关在后端检查‘Content-Type’字段。修改为image/jpeg后服务器误以为这是图片放行了 PHP 文件。这说明 MIME 类型完全由客户端控制不可信任9.修复建议不要信任‘Content-Type’它可被轻松修改使用‘getimagesize() ’等函数检查文件真实内容结合文件头如 JPEG 的 FF D8 FF验证类型10.总结第二关让我理解到了后端的MIME验证同样不可靠。真正的防御应该基于文件内容检测。**免责声明**本文所有操作均在自建虚拟机环境中完成仅用于网络安全学习与研究。严禁用于任何非法用途违者自行承担后果。

更多文章