渗透测试-文件上传漏洞之MIME type验证原理和绕过

本文详细介绍了MIMEtype验证在文件上传漏洞中的作用,通过实例展示了如何利用burp抓包修改content-type来绕过验证,并成功上传PHP文件获取shell。实验过程包括对上传函数的审计、利用file()函数的漏洞以及实际的shell连接操作,揭示了上传漏洞的利用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件上传漏洞之MIME type验证原理和绕过

前言

一、什么是MIME type

首先,我们要了解浏览器是如何处理内容的。在浏览器中显示的内容有 HTML、有 XML、有 GIF、还有 Flash ……那么,浏览器是如何区分它们,决定什么内容用什么形式来显示呢?答案是 MIME Type,也就是该资源的媒体类型。

媒体类型通常是通过 HTTP 协议,由 Web 服务器告知浏览器的,更准确地说,是通过 Content-Type 来表示的,例如:
Content-Type: text/HTML

二、MIME type验证原理和绕过

1. MIME type验证原理

我们首先在pikachu上进行实验
在这里插入图片描述
上传php文件失败,那我们只能进行代码审计了,看看是否有漏洞可以利用的地方
在这里插入图片描述
我们进行审计时发现只能上传imag的图片,且通过这个函数进行检测上传
u p l o a d = u p l o a d s i c k ( ′ u p l o a d f i l e ′ , upload=upload_sick('uploadfile', upload=uploadsick(uploadfile,mime,$save_path);//调用函数
那我们去看看这个函数的内容,找到文件的目录,进行查看
D:\phpStudy\WWW\pikachu\inc\uploadfunction.php
在这里插入图片描述
通过查看发现是file()函数来验证MIME类型的。
函数原型是这样的
在这里插入图片描述
分析代码可知,存在漏洞的原理是这样的
在这里插入图片描述
我们可以通过burp抓包,去修改content-type内容,从而达到绕过上传php文件的目的。

2. burp抓包绕过拿shell

我们进行burp抓包
在这里插入图片描述
将content-type的内容修改为imag/png
进行重发
在这里插入图片描述
找到上传文件的目录
D:\phpStudy\WWW\pikachu\vul\unsafeupload\uploads\test.php
在这里插入图片描述
发现上传成功。
我们打开图片的链接看看打不打得开
http://192.168.222.4/pikachu/vul/unsafeupload/uploads/test.php
复制到网址打开试试
在这里插入图片描述
发现打得开,这时我们就将网址复制到蚁剑连接
在这里插入图片描述
连接成功,漏洞利用成功,实验结束。
这里我给大家总结一下MIME类型的文件名
在这里插入图片描述

总结

本次实验讲述了上传漏洞的MIME type验证原理和绕过方法,利用file()函数存在的漏洞,进行burp抓包利用,实现拿shell的过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

炫彩@之星

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

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

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

打赏作者

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

抵扣说明:

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

余额充值