基于IE的MIME嗅探功能的跨站点脚本攻击

基于IE的MIME嗅探功能的跨站点脚本攻击
点评:即有一个特点,那就是在将显示一个文件用户将首先检查文件的类型,乍一看没什么问题,但事实上这是非常危险的,因为它会让IE从图片执行代码,嵌入的图像的Javascript代码。引入MIME嗅探功能的最初目的是为了弥补Web服务器可以响应一个图像的请求的可能性

即有一个特点,那就是在将显示一个文件的用户将首先检查文件的类型,乍一看没什么问题,但事实上这是非常危险的,因为它会让IE从图片上执行代码,嵌入的图像的Javascript代码。引入MIME嗅探功能的最初目的是为了弥补内容类型信息的缺陷,Web服务器可能会返回错误时,对图像的要求。
但事情没有解决,坏人很容易滥用属性,例如通过精心制作一个图像文件,并在其中显示嵌入式浏览器和实现HTML和Javascript代码。本文将研究这个问题,并介绍如何减少用户和Web开发人员对这个问题的风险。
1。危险的嗅探嗅探功能
对于Web 2应用程序,允许用户上传图像是一项基本要求。然而,IE用户面对这些图片时必须小心,因为IE的某些功能将打开图片的大门,以便使用跨站点脚本攻击。
虽然许多大型网站都试图保护其访客免受可能的Javascript攻击,例如实现专门针对活动内容过滤器的防御,但它们无法中断活动,因为个人简介、博客和论坛、javascript、HTML代码和Flash applet是必不可少的活动。
此外,大多数交互网站允许用户上传和链接他们的图片,但攻击者可以使用此功能来颠覆IE引入的某些功能,以确保兼容性和提供额外的安全性。攻击者只需要在图像的开头嵌入一些HTML代码和Javascript。IE打开手和脚图像时,浏览器不显示图像,而是检测运行映像中的嵌入式代码。
之所以出现这种情况,因为浏览器可以被用来确定在各种方式的文件类型,如文件扩展名JPG可以指向一个图像的JPEG格式,除了Web服务器也可以定义在HTTP头的内容类型(在这种情况下,图像/ JPG格式),但一般使用上传文件名来表示文件扩展类型。
最后,大多数Web浏览器还将检查几个字节的文件的开头,这是通常被称为签名的文件,并且,通常称为一些知名的字节序列,如PNG,JPEG,PK,JFIF等等。
到目前为止,我们已经介绍了三种方法来让浏览器确定文件内容的类型,即通过文件本身的扩展或文件开头部分的签名来确定文件类型,或者通过服务器响应标头内容类型来确定文件类型。
然而,后来IE4介绍的第四种方法,这是通常被称为MIME嗅探或MIME类型的检测方法。因此,IE的当前版本不假定Web文件的内容类型是服务器是在HTTP header.ie浏览器的内容类型不信任的文件名或签名的推广。相反,它通过检查文件开头的256字节内容来检查文件的类型。
然而,这是通过IE只有当用户直接调用URL下载文件,当IE是用来打开本地存储的文件或图像的图像标签连接(IMG)在HTML,无嗅了。
IE MIME嗅探功能的引入的错误类型要提防服务器所指示的初衷,但攻击者使用它来避免IE安全防御功能,防止浏览器自动执行下载的文件(如HTA文件)的功能。
此外,MIME嗅探还允许浏览器容忍内容类型声明中的意外错误。例如,如果服务器声明了一个文件类型的文本/普通文件,但实际上提供了一个HTML文件。
对于常见的GIF、JPEG和PNG格式,只要文件扩展名和内容类型与签名类型一致,浏览器将忽略MIME嗅探所获得的结果,只有当文件扩展名、内容类型和签名类型不一致时,IE才会基于MIME嗅探确定的结果。
二、MIME嗅探功能倒打一耙
现在,如何保护用户免受恶意服务器的攻击,以及如何有效地帮助不正确配置服务器的管理员成为Web 2面临的主要问题,如果文件的扩展、内容类型和签名不一致,那么浏览器将是内容。
所以如果一张图片开始与一些HTML代码,虽然乍看上去无害的,它实际上可能是相当危险的,因为IE图片中执行代码。这是攻击者嵌入Javascript的图像和提高的机会,使他们能够执行跨站点脚本攻击,使用这种方式,精心制作的图片在当前的访问服务器的身份验证cookie盗取受害者的使用,那么受害者服务器登录
三,援军到来之前
微软公司已经认识到解决它在一个新的ie.ie8不再探头的图像版本的问题和计划,从而忽略了嵌入HTML。此外,特殊的下载,您可以关闭的MIME嗅探功能通过指定的私人内容类型和权威的价值观,如内容类型:文本/ HTML;权威= true.then,IE会处理文件,服务器指出型。
关键的情况下,你可以使用新的x-download-options:noopen头确保在外部网站中显示相应的文件,这意味着即使HTML文件是安全分娩,因为浏览器只是文件保存起来。不幸的是,在IE8完全取代IE时间的其他版本,这个网站,这还不算。
四、急救措施
事实上,这是不难抵御这些复杂的文件。因为Windows XP SP2,用户可以禁用IE MIME嗅探功能是打开浏览器,选择工具;;菜单选项,单击Internet;选项卡,请指定不同区域网络内容安全设置(Z);图标选择;Internet该区域的安全级别(L);单击自定义级别按钮,最后,为了使打开文件;内容的基础上,而不是在文件扩展名的选项。然而,这将打开一些老孔在过去!
这是否能提供安全,只能通过实践来证明,我们的重点不应该是在用户中推广这项技术。相反,我们应该设法使Web服务应用程序提供安全措施来保护访问者,并确保Web服务提供者的系统不向用户发送复杂的图像。
管理员可以使用脚本来检查,上传到自己的服务器上的文件的类型是一致的。例如,如果一个图像文件扩展名为JPG,和文件字节的签名是相同类型的开始(可以是Linux文件image.webp命令下使用和验证使用getimagesize PHP),经过验证后,服务器可以发送文件。
这样,即使文件包含HTML代码,IE也不执行代码,但是必须注意的是,只有这样,图像安全性才受到保护,而服务器声明的内容类型必须是完全正确的。
达到绝对可靠,但是,它是必要的检查前256个字节的文件是HTML code.ie使用常见的,,,,,等标签来识别HTML代码。如果没有标签的前256个字节的文件发现,微软浏览器不能说明文件。
管理员也可以像这样配置服务器。当文件下载(而不是打开),服务器总是发出头内容配置:依恋;文件名=。这可以防止浏览器在网站中打开该文件,但使用本地链接的应用程序打开文件,但这会让用户感到不舒服。不幸的是,这种头重写技术只适用于那些不允许直接访问文件的用户。
鉴于此,上传文件的存储位置不应在文件可以公开访问的位置,最好是随机命名文件。
事实上,最有效的方法是使用ImageMagick或类似的工具来转换图像文件的格式,这样可以删除所有的代码段的图像,这样的代码对用户的威胁是完全摆脱。
像脸谱网和推特大型网站将用户上传的照片,但必须小心,因为它有可能打开另一个进攻方式。例如,如果某人在一个发现一个缓冲区溢出问题,攻击者可能会做一些尝试,找到一种方式使用的特殊照片。
五。总结
MIME嗅探是忠诚卫士的一种功能,即谁知道他现在突然作恶、叛逃、损害IE用户,当然是对策,但这些对策是否可靠是一个未解决的问题,目前,由图像发起的跨站点脚本攻击看起来并不常见。但世界正经历着巨大的变化:交互式网站正成为犯罪的首选目标
幸运的是,我们还可以使用其他浏览器,如Firefox,这是一种补救措施。当然,Firefox也执行MIME嗅探,但它并不莫名其妙地将图像解释为HTML。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部