前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >利用MIME sniffing进行攻击

利用MIME sniffing进行攻击

作者头像
网e渗透安全部
发布于 2024-01-29 08:14:49
发布于 2024-01-29 08:14:49
4180
举报
文章被收录于专栏:白安全组白安全组

这是一个比较有意思的研究,就是一个网站的数据返回包中,如果没有设置content-type这个数据头的话,而且内容是可操控,那么我们就可以利用MIME让浏览器把文件当作网页来显示。

比如说,一个网站如果可以上传图片,只检查了文件名,我们可以在内容中插入一段html代码,内容可以是一个xss的payload,如果服务器在输出这个图片的时候,没有自动加上content-type,浏览器就会将其当作网页执行,然后出现弹窗。

但是现在问题在于服务器会自己自动加上content-type这个头

那么还有一种方式,apache有一种特性,就是文件名如果是只有.的话,那么就不会返回content-type这个头,那么我们的文件就可以成功当作网页读取了,具体如下。

上传文件,然后直接访问

这种方式,其实在现实环境下,基本上大多数的网站都存在着将文件名修改之后保存的操作,所以限制很大。

那么什么样的centent-type才会被浏览器解析为网站呢,

application/zip

application/json

application/octet-stream

text/html

text/json

text/plain

huli/blog

font/woff2

这些返回头都是可以解析为网页的。

想要关闭这种机制,我们只需要在返回包种新增一个数据头:

X-Content-Type-Options: nosniff

这样上面的就都不可以执行了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-01-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 白安全组 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
2018-06-20 HTTP相关知识关于Content-TypePOST常见数据提交类型关于HTTP关于MIME类型
原文地址:https://blog.csdn.net/woaixiaoyu520/article/details/76690686
Albert陈凯
2018/07/24
1.9K0
MIME 类型大全,你值得收藏
【转载请注明出处】:https://blog.csdn.net/huahao1989/article/details/107746738
后端老鸟
2020/08/02
2.8K0
MIME 类型大全,你值得收藏
密码学系列之:内容嗅探
内容嗅探,也被称为媒体类型嗅探或MIME嗅探,是检查一个字节流的内容,试图推断其中数据的文件格式的做法。内容嗅探通常用在媒体类型没有被准确指定的情况,用于补偿元数据信息。
程序那些事
2021/03/10
1.1K0
Refused to Execute Script From Because Its MIME Type (Text/plain) Is Not Executable, and Strict MIME
今天又与这个问题相遇了,Orz,还是研究一下解决方法和出现原因吧。 刚刚在github上传了一个js文件,想让这个文件被其他网页引用,于是贴出了这个文件的raw版本的地址。但是却就遇到了这样的问题。
技术小黑屋
2018/09/04
5.7K0
掌握X-Content-Type-Options头的防护之力
你是否曾遇到过浏览网站时内容展示混乱的情况?这可能与站点未定义X-Content-Type-Options头有关。在这篇文章中,我们将一同揭开这个头信息的神秘面纱,探讨其在保障站点内容正确展示中的关键作用。
一只牛博
2025/05/30
270
掌握X-Content-Type-Options头的防护之力
http协议
—————————–195362999817818974031690194806 // 头部boundary Content-Disposition: form-data; name=”userfile”; filename=”vcpg” // 内容属性,form-data; name=”服务器用于接收文件的参数名”: filename=”文件被发送给服务器时所使用的名称” Content-Type: application/octet-stream // 万能文件类型 // 空行 // 文件内容开始 //… // 文件内容结束 —————————–195362999817818974031690194806– // 尾部boundary,其紧贴文件内容的结尾
leobhao
2022/06/28
6900
CORB那些事
本站底部调用了ip.sb的API以显示访客IP,突然某一天不能显示了。本以为是now.sh的hugo部署问题。闲暇时分析一下才明白是CORB问题。
yumusb
2020/10/26
1.7K0
闲话文件上传漏洞
文件上传漏洞是web安全中经常利用到的一种漏洞形式。这种类型的攻击从大的类型上来说,是攻击 数据与代码分离原则 的一种攻击。 一些web应用程序中允许上传图片,文本或者其他资源到指定的位置,文件上传漏洞就是利用这些可以上传的地方将恶意代码植入到服务器中,再通过url去访问以执行代码 造成文件上传漏洞的原因是 对于上传文件的后缀名(扩展名)没有做较为严格的限制 对于上传文件的MIMETYPE 没有做检查 权限上没有对于上传的文件的文件权限,(尤其是对于shebang类型的文件) 对于web server对于上
FB客服
2018/02/23
1.9K0
网络标准之:永远是1.0版本的MIME
无规矩不成方圆,无标准不成网络通信。正是在各种网络协议和标准的基础之上,才构建了我们现在流行的互联网。今天给大家介绍的就是一个网络标准格式,叫做MIME,它的全称是Multipurpose Internet Mail Extensions,翻译过来就是多用途Internet邮件扩展。
程序那些事
2022/03/11
5470
补习系列-springboot mime类型处理
MIME的全称是Multipurpose Internet Mail Extensions,即多用途互联网邮件扩展,尽管读起来有些拗口,但大多数人可能都知道, 这是HTTP协议中用来定义文档性质及格式的标准。IETF RFC 6838,对HTTP传输内容类型进行了全面定义。 而 IANA(互联网号码分配机构)是负责管理所有标准MIME类型的官方机构。可以在这里)找到所有的标准MIME
美码师
2018/08/27
2.3K0
HTTP 协议下载文件响应设置
最近在做的一个项目需要自己搭建 node 服务端作中间层来转发请求与响应,原本倒也无甚难度,但是在中转一个返回内容是 excel 文件时遇到了一些问题。当然后来这个问题解决了,node 层对后端返回的响应不作处理,直接利用 pipe 穿透到前端即可(当然,用 node 改造一下再转发也是可以的,只是不如直接穿透方便)。今天想谈谈的是 http 响应头在返回数据是一个需要下载的文件时,应该是什么样子的。
逆葵
2019/04/24
10.6K0
WEB安全防护相关响应头(上)
WEB 安全攻防是个庞大的话题,有各种不同角度的探讨和实践。即使只讨论防护的对象,也有诸多不同的方向,包括但不限于:WEB 服务器、数据库、业务逻辑、敏感数据等等。除了这些我们惯常关注的方面,WEB 安全还有一个重要的元素——网站的使用者。
天存信息
2021/06/03
2K0
WEB安全防护相关响应头(上)
如何使用node的http模块部署前端build包
在Web开发中,经常需要搭建一个能够提供静态文件访问的服务器。无论是用于本地开发调试,还是用于部署网站,这都是一个常见的需求。本篇文章将介绍如何使用Node.js和其内置的HTTP模块来创建一个简单的静态文件服务器。
用户6297767
2023/11/21
4000
前端文件下载与浏览器嗅探
最近要做个下载文件的功能,当后端说做好了给我接口的时候,我直接拼上参数然后window.open(url)之后,浏览器为什么没有像从前一样下载啊?我又换了个姿势还是不行,我感觉后端给的接口不对,但是后端是个实习生,于是我们就开始面向google编程了,结果在我们共同的努力下真的解决了!将主要知识点总结如下:
用户3258338
2022/11/23
1K0
Nginx配置各种响应头防止XSS,点击劫持,frame恶意攻击
为什么要配置HTTP响应头? 不知道各位有没有被各类XSS攻击、点击劫持 (ClickJacking、 frame 恶意引用等等方式骚扰过,百度联盟被封就有这些攻击的功劳在里面。为此一直都在搜寻相关
iginkgo18
2020/09/27
4.8K0
Nginx配置各种响应头防止XSS,点击劫持,frame恶意攻击
Getshell | 文件上传绕过整理
WAF绕过 安全狗绕过 1.绕过思路:对文件的内容,数据。数据包进行处理。 关键点在这里Content-Disposition: form-data; name="file"; filename="ian.php" 将form-data; 修改为~form-data; 2.通过替换大小写来进行绕过 Content-Disposition: form-data; name="file"; filename="yjh.php" Content-Type: application/octet
HACK学习
2019/11/14
3.3K0
ArcGis API JS 4.X本地化部署与地图的基础使用
首先下载ArcGIS API for JavaScript4.x,这里下载的是4.19。
Kiba518
2021/07/29
1.8K0
ArcGis API JS 4.X本地化部署与地图的基础使用
C# HTTP系列10 form表单的enctype属性
在ASP.NET编程中经常遇到下面的代码片段,将人员信息以表单方式提交到后台程序并保存到服务器与数据库中。
张传宁IT讲堂
2019/09/18
1.2K0
C# HTTP系列10 form表单的enctype属性
PHP中常用的header头
HTTP 消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可选的消息体组成。HTTP 的头域包括通用头,请求头,响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。 一些基本常用的 php 设置 http请求头定义。可以通过自定义请求头来实现。 header('HTTP/1.1 200 OK'); // ok 正常访问 header('HTTP/1.1 404 Not Found'); //通知浏览器 页
沈唁
2018/05/24
1.4K0
POST上传各种数据类型(包括图片)
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/50914384
用户1451823
2018/09/13
2.8K0
相关推荐
2018-06-20 HTTP相关知识关于Content-TypePOST常见数据提交类型关于HTTP关于MIME类型
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档