文件上传漏洞之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=uploads​ick(′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验证原理和绕过相关推荐

  1. 2022渗透测试-文件上传漏洞的详细讲解

    目录 1.什么是文件上传漏洞 2.生成图片木马 3.靶场 1.第一关 2.前端检测(第二关) 3.服务器端检测--MIME类型(第二关) 4.服务器端检测--文件类型(第十四关) 5.服务器文件内容验 ...

  2. 渗透测试-文件上传/下载/包含

    渗透测试-文件上传/下载/包含 概述 一.常见校验上传文件的方法 客户端校验 服务器端校验 1.校验请求头 content-type字段 2. 正则匹配来判断文件幻数(文件头)内容是否符合要求 3. ...

  3. tomcat temp 大量 upload 文件_渗透测试之文件上传漏洞总结

    文末下载上传环境源码 客户端 js检查 一般都是在网页上写一段javascript脚本,校验上传文件的后缀名,有白名单形式也有黑名单形式. 查看源代码可以看到有如下代码对上传文件类型进行了限制: 我们 ...

  4. web渗透之文件上传漏洞

    目录 一.原理 二.利用方式 三.文件上传的风险处 四.文件上传漏洞的危害 五.文件上传漏洞常见的绕过方式 1.前端绕过检测 2.mime类型检测绕过 3.黑名单绕过 (1).相似扩展名 (2).ap ...

  5. web渗透之文件上传漏洞知识总结

    一.文件上传漏洞思路: 第一步: 首先看中间件:因为第一步看中间件就是确定是否存在解析漏洞(学习整理几种解析漏洞的对应版本,有些低版本有解析漏洞,有些高版本就没有.)中间件版本确定了,解析漏洞就确定了 ...

  6. 网络安全与渗透:文件上传漏洞,一文详解(十)此生无悔入华夏,男儿何不带吴钩

    中华人民共和国网络安全法 阅读本文前,请熟读并遵守中华人民共和国网络安全法: http://gkhy.jiujiang.gov.cn/zwgk_228/jc/zcwj/202006/P02020061 ...

  7. 渗透测试之文件上传漏洞

    文件上传漏洞 理论: 文件上传: 用户提交文件到web服务器. 文件上传本身没有问题,问题是文件被上传到哪里,上传之后,服务器如何处理.解释文件. 文件上传漏洞产生的原因; web服务器的文件上传功能 ...

  8. 渗透测试-文件上传之getimagesize函数绕过

    文件上传之getimagesize函数绕过 文章目录 文件上传之getimagesize函数绕过 前言 一.什么是getimagesize函数 二.文件上传之getimagesize函数绕过 1. g ...

  9. 渗透测试-文件上传之大小写和window特性绕过(三)

    文件上传之大小写和window特性绕过 文件上传upload-labs实验室第6,7,8关 文章目录 文件上传之大小写和window特性绕过 前言 一.什么是window特性 二.大小写和window ...

最新文章

  1. 2345浏览器网址_2345网址导航回应“浏览器主页劫持”丨开发者日报
  2. 创建和触发Notification
  3. Android中的ClassLoader与dex文件加密实现分析
  4. C++字符输入getchar()和字符输出putchar()
  5. java更好的语言_五个使Java变得更好的功能
  6. 【CHM】.chm文件无法正常显示的解决方案
  7. zstd安装_在ARM架构服务器上编译Greenplum6并制作rpm安装包
  8. 【索引】联合索引的基本知识
  9. cookie and session
  10. 备忘--简单比较SPSS、RapidMiner、KNIME以及Kettle四款数据分析工具
  11. 【转载】Python tips: 什么是*args和**kwargs?
  12. 大学计算机应用基础教程pdf,最新大学计算机应用基础教程
  13. Echart地图的省级,以及所有地市级下载与使用
  14. KMO检验和Bartlett球形检验
  15. Ext JS 4 架构你的应用 第2节 (官方文档翻译)
  16. webstorm的 快捷键(Keymap)
  17. 淘宝/天猫API:item_recommend-获取推荐商品列表
  18. matlab怎么对不同长度的数据储存,求助,怎么解决适量长度不同的问题
  19. React Native 移动开发入门与实战
  20. Python+opencv 人脸识别

热门文章

  1. 毛诗新译(四)国风.豳风.狼跋_拔剑-浆糊的传说_新浪博客
  2. 灵活的体现输入框的提示语句
  3. JS 模块化: CommonJS 与 ESM(ECMAScript Module) 的引用机制比较 循环依赖解决方式
  4. win10+python3.6+cuda9+pytorch1.1.0安装
  5. c语言数码管显示乘法口诀,数码管随机模拟显示乘法口诀实验报告
  6. 剑与契约如何在电脑上玩 剑与契约模拟器玩法教程
  7. myEclipse 免费注册码,破解工具--myEclipseGen.java
  8. 使用canvas绘制六边形
  9. TIA博途Wincc_报警视图的列宽调整的具体方法示例
  10. 【python】Django系列Day06--Django中间件介绍