Upload-Lab第2关:如何巧妙绕过MIME类型过滤?
在upload-lab
的第二关,我们需要应对MIME
类型过滤。MIME
类型是互联网媒体类型,用于指示文件的性质和格式。在实际的文件上传场景中,服务器通常会检查上传文件的MIME
类型以确保安全。然而,通过某些技巧,我们可以绕过这种检查并上传恶意文件。本篇文章将详细介绍如何通过绕过MIME
类型过滤来攻克upload-lab
的第二关。
第二关简介
在Pass02
关卡中,服务器会检查上传文件的MIME
类型,只有当MIME
类型为允许的类型(如图片类型)时,文件才能成功上传。如果上传的文件MIME
类型不符合要求,则会被拒绝。 源码如下图所示:
绕过MIME类型过滤的方法
- 使用Burp Suite拦截并修改请求: 这是最常用的方法,通过Burp Suite等抓包工具拦截上传请求,然后修改MIME类型。
- 构造特殊的文件: 通过修改文件头信息,使文件看起来像是合法的类型。
实践步骤
- 准备工具
Burp Suite
- 一个简单的
Web Shell
文件,例如:
<?php echo shell_exec($_GET['pass']); ?>
- **启动Burp Suite并配置浏览器代理 **
- 启动Burp Suite并设置拦截模式,如下图所示:
- 配置浏览器使用
BurpSuite
作为代理,如下图所示:
上图中的HTTProy
代理地址和端口要与BurpSuite
的设置一致,如下图所示:
- 此时上传
webshell
,点击上传,会自动调到BurpSuite
页面,通过观察下图Content-Type
的类型为application/x-php
,因此,我们要对该类型进行修改成image/jpeg
修改后,先点击Action -> Send to Intruder
,接着,点击Forward
,点击后,会输入如下结果,如下图所示:
最后,通过前端页面中的源码看到webshell已经成功上次到服务器上,如下图所示:
验证上传成功
通过访问类似于http://服务器地址/upload/shell.php?cmd=whoami
的URL来验证Web Shell是否工作。如下图所示:
总结
通过这种方法,我们成功绕过了MIME类型过滤,上传了恶意文件。这展示了在文件上传功能中仅依赖MIME类型检查是不够的,还需要结合文件内容、扩展名等多重检查手段,才能有效防御此类攻击。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 攻城狮小林
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果