渗透测试-文件上传漏洞之MIME type验证原理和绕过
文件上传漏洞之MIME type验证原理和绕过
文章目录
- 文件上传漏洞之MIME type验证原理和绕过
- 前言
- 一、什么是MIME type
- 二、MIME type验证原理和绕过
- 1. MIME type验证原理
- 2. burp抓包绕过拿shell
- 总结
前言
一、什么是MIME type
首先,我们要了解浏览器是如何处理内容的。在浏览器中显示的内容有 HTML、有 XML、有 GIF、还有 Flash ……那么,浏览器是如何区分它们,决定什么内容用什么形式来显示呢?答案是 MIME Type,也就是该资源的媒体类型。
媒体类型通常是通过 HTTP 协议,由 Web 服务器告知浏览器的,更准确地说,是通过 Content-Type 来表示的,例如:
Content-Type: text/HTML
二、MIME type验证原理和绕过
1. MIME type验证原理
我们首先在pikachu上进行实验
上传php文件失败,那我们只能进行代码审计了,看看是否有漏洞可以利用的地方
我们进行审计时发现只能上传imag的图片,且通过这个函数进行检测上传
upload=uploadsick(′uploadfile′,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的过程。
渗透测试-文件上传漏洞之MIME type验证原理和绕过相关推荐
- 2022渗透测试-文件上传漏洞的详细讲解
目录 1.什么是文件上传漏洞 2.生成图片木马 3.靶场 1.第一关 2.前端检测(第二关) 3.服务器端检测--MIME类型(第二关) 4.服务器端检测--文件类型(第十四关) 5.服务器文件内容验 ...
- 渗透测试-文件上传/下载/包含
渗透测试-文件上传/下载/包含 概述 一.常见校验上传文件的方法 客户端校验 服务器端校验 1.校验请求头 content-type字段 2. 正则匹配来判断文件幻数(文件头)内容是否符合要求 3. ...
- tomcat temp 大量 upload 文件_渗透测试之文件上传漏洞总结
文末下载上传环境源码 客户端 js检查 一般都是在网页上写一段javascript脚本,校验上传文件的后缀名,有白名单形式也有黑名单形式. 查看源代码可以看到有如下代码对上传文件类型进行了限制: 我们 ...
- web渗透之文件上传漏洞
目录 一.原理 二.利用方式 三.文件上传的风险处 四.文件上传漏洞的危害 五.文件上传漏洞常见的绕过方式 1.前端绕过检测 2.mime类型检测绕过 3.黑名单绕过 (1).相似扩展名 (2).ap ...
- web渗透之文件上传漏洞知识总结
一.文件上传漏洞思路: 第一步: 首先看中间件:因为第一步看中间件就是确定是否存在解析漏洞(学习整理几种解析漏洞的对应版本,有些低版本有解析漏洞,有些高版本就没有.)中间件版本确定了,解析漏洞就确定了 ...
- 网络安全与渗透:文件上传漏洞,一文详解(十)此生无悔入华夏,男儿何不带吴钩
中华人民共和国网络安全法 阅读本文前,请熟读并遵守中华人民共和国网络安全法: http://gkhy.jiujiang.gov.cn/zwgk_228/jc/zcwj/202006/P02020061 ...
- 渗透测试之文件上传漏洞
文件上传漏洞 理论: 文件上传: 用户提交文件到web服务器. 文件上传本身没有问题,问题是文件被上传到哪里,上传之后,服务器如何处理.解释文件. 文件上传漏洞产生的原因; web服务器的文件上传功能 ...
- 渗透测试-文件上传之getimagesize函数绕过
文件上传之getimagesize函数绕过 文章目录 文件上传之getimagesize函数绕过 前言 一.什么是getimagesize函数 二.文件上传之getimagesize函数绕过 1. g ...
- 渗透测试-文件上传之大小写和window特性绕过(三)
文件上传之大小写和window特性绕过 文件上传upload-labs实验室第6,7,8关 文章目录 文件上传之大小写和window特性绕过 前言 一.什么是window特性 二.大小写和window ...
最新文章
- 2345浏览器网址_2345网址导航回应“浏览器主页劫持”丨开发者日报
- 创建和触发Notification
- Android中的ClassLoader与dex文件加密实现分析
- C++字符输入getchar()和字符输出putchar()
- java更好的语言_五个使Java变得更好的功能
- 【CHM】.chm文件无法正常显示的解决方案
- zstd安装_在ARM架构服务器上编译Greenplum6并制作rpm安装包
- 【索引】联合索引的基本知识
- cookie and session
- 备忘--简单比较SPSS、RapidMiner、KNIME以及Kettle四款数据分析工具
- 【转载】Python tips: 什么是*args和**kwargs?
- 大学计算机应用基础教程pdf,最新大学计算机应用基础教程
- Echart地图的省级,以及所有地市级下载与使用
- KMO检验和Bartlett球形检验
- Ext JS 4 架构你的应用 第2节 (官方文档翻译)
- webstorm的 快捷键(Keymap)
- 淘宝/天猫API:item_recommend-获取推荐商品列表
- matlab怎么对不同长度的数据储存,求助,怎么解决适量长度不同的问题
- React Native 移动开发入门与实战
- Python+opencv 人脸识别
热门文章
- 毛诗新译(四)国风.豳风.狼跋_拔剑-浆糊的传说_新浪博客
- 灵活的体现输入框的提示语句
- JS 模块化: CommonJS 与 ESM(ECMAScript Module) 的引用机制比较 循环依赖解决方式
- win10+python3.6+cuda9+pytorch1.1.0安装
- c语言数码管显示乘法口诀,数码管随机模拟显示乘法口诀实验报告
- 剑与契约如何在电脑上玩 剑与契约模拟器玩法教程
- myEclipse 免费注册码,破解工具--myEclipseGen.java
- 使用canvas绘制六边形
- TIA博途Wincc_报警视图的列宽调整的具体方法示例
- 【python】Django系列Day06--Django中间件介绍