当前位置: 首页 > article >正文

绕过MIME-Type验证

1.漏洞原理

MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。

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

2.源码

这里以upload-labs less2为例,

if (($_FILES['upload_file']['type'] == 'image/jpeg') || ($_FILES['upload_file']['type'] == 'image/png') || ($_FILES['upload_file']['type'] == 'image/gif')):检查上传文件的MIME类型是否为JPEG、PNG或GIF图像。这是通过$_FILES全局数组中的type索引来完成的,该数组包含了关于上传文件的信息。

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
    if (file_exists(UPLOAD_PATH)) {
        if (($_FILES['upload_file']['type'] == 'image/jpeg') || ($_FILES['upload_file']['type'] == 'image/png') || ($_FILES['upload_file']['type'] == 'image/gif')) {
            $temp_file = $_FILES['upload_file']['tmp_name'];
            $img_path = UPLOAD_PATH . '/' . $_FILES['upload_file']['name']            
            if (move_uploaded_file($temp_file, $img_path)) {
                $is_upload = true;
            } else {
                $msg = '上传出错!';
            }
        } else {
            $msg = '文件类型不正确,请重新上传!';
        }
    } else {
        $msg = UPLOAD_PATH.'文件夹不存在,请手工创建!';
    }
}

3.使用burpsuit

先打开拦截并且上传,发现这边的content-type也就是上传类型不是image或者png类型,这肯定事不允许上传的,我们只需要将content-type修改成image/png格式即可

发现文件成功上传

4.接下来打开蚁剑连接木马

5.发现已经可以看到upload-labs下所有的文件


http://www.kler.cn/a/350481.html

相关文章:

  • 和优秀的人一起共事,你会越来越优秀!
  • 芯片详细讲解,从而区分CPU、MPU、DSP、GPU、FPGA、MCU、SOC、ECU
  • 循环队列(C语言)
  • GraphRAG: Auto Prompt Tuning 实践
  • WPS数据分析000004
  • 如何设置HTTPS站点防御?
  • 算法知识点————【DFS】【BFS】【树】【图】
  • 发送URL请求中的问题记录
  • [LeetCode] 844. 比较含退格的字符串
  • ubuntu22.04安装mysql5.7
  • 综合小案例
  • foxy moveit2 小鱼
  • 珠海自闭症寄宿学校:打造温馨家庭般的学习氛围
  • mongodb的相关关键字说明
  • 记录使用datagrip备份数据库信息
  • 基于Java微信小程序的学生签到系统的详细设计和实现(源码+lw+部署文档+讲解等)
  • 【SPIE独立出版】第四届计算机、信息工程与电子材料国际学术会议 (CTIEEM 2024,2024年11月15-17日 )
  • CrossSim安装教程
  • 基于SpringBoot+Vue+uniapp的在线招聘平台的详细设计和实现
  • 电动汽车上下电控制策略的设计方法——钥匙ON_START上高压流程
  • Linux防火墙常用命令centos7
  • 机器学习和深度学习常用的工具库
  • Java基础概览和常用知识(七)
  • 基于SpringBoot问卷调查系统小程序【附源码】
  • C# 图像镜像
  • 微信小程序 - 供应链系统设计