upload-labs关卡2(基于白名单MIME绕过)通关思路


前言

此文章只用于学习和反思巩固文件上传漏洞知识,禁止用于做非法攻击。注意靶场是可以练习的平台,不能随意去尚未授权的网站做渗透测试!!!


一、回顾上一关知识点

上一关是一个js前端验证的文件上传,我们可以通过禁用js代码,或者是修改删除页面代码,又或者是bp抓包修改来达到js前端验证绕过。让我们看看这一关是怎么通关

二、第二关要了解的知识点

1、什么是白名单

白名单就是设置用户能通过的名单。与之相反,黑名单就是设置用户禁止通过的名单。白名单相对安全一点。

2、什么是MIME

MIME (Multipurpose Internet Mail Extensions)
是描述消息内容类型的标准,用来表示文档、文件或字节流的性质和格式。

MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。

浏览器通常使用 MIME 类型(而不是文件扩展名)来确定如何处理URL,因此 We b服务器在响应头中添加正确的 MIME
类型非常重要。如果配置不正确,浏览器可能会无法解析文件内容,网站将无法正常工作,并且下载的文件也会被错误处理。

在这一关我们只要知道MIME是一个文件类型,通常在数据包Content-Type中可找到。这一关是通过验证MIME文件类型来判断文件是否能上传。

三、靶场第二关思路

  • 1、分析源代码
  • 2、通过bp修改MIME类型达到绕过
  • 3、检查文件是否成功上传

1、分析源代码

在这里插入图片描述
其中发现关键代码

 if (($_FILES['upload_file']['type'] == 'image/jpeg') || ($_FILES['upload_file']['type'] == 'image/png') || ($_FILES['upload_file']['type'] == 'image/gif'))

这一个代码的意思是判断文件上传的类型MIME如果是image/jpeg,image/png,image/gif的话,文件就能成功上传,否则上传失败。这就是典型的白名单MIME验证

2、通过bp修改MIME类型达到绕过

(如图所示)现在我们知道这是一个白名单MIME验证,不是文件后缀名验证。那么我们是否可以上传一个php后门文件然后通过bp截包修改MIME然后再放包达到绕过呢?我们可以来试一试
这里我上传是带有phpinfo的php文件。
在这里插入图片描述
找到Content-Type,也就是MIME。把它修改为image/jpeg,image/png,image/gif任意一种。这里我修改为image/jpeg类型(如图所示)然后放包。
在这里插入图片描述
发现上传成功了

3、检查文件是否成功上传

我们看看服务器是否成功上传了此文件,同时也去访问此文件地址,看看php文件是否成功被解析。(如图所示)
在这里插入图片描述

在这里插入图片描述

发现是成功解析了php文件,如果是上传后门就可以直接连接菜刀了。


总结

这一关是基于白名单MIME验证的绕过,虽然说白名单相对安全。但是只验证MIME类型是不安全的,它可以通过抓包修改达到绕过。此文章是小白自己为了巩固文件上传漏洞而写的,大佬路过请多指教!

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无名小卒且不会安全的zzyyhh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值