0×00。简介
我做了一项调查,看看X-XSS-Protection领域的哪一项设置最差。调查结果非常令人惊讶,所以我有这篇文章。
网民们认为最糟糕的配置是X-XSS-Protection: 0,其次是X-XSS-Protection: 1; mode=block,但X-XSS-Protection: 1不是最差的配置。在我看来(其他人也可能与我有同样的看法),X-XSS-Protection: 1应该是最糟糕的配置。
在本文中,我将与大家讨论X-XSS-Protection的配置,最后希望每个人都了解哪种X-XSS-Protection配置存在安全风险。
0×01。科普下的相关知识
从IE8开始,IE浏览器具有内置的XSS攻击保护机制。此浏览器的内置保护机制称为XSS过滤器。这种保护机制主要用于减轻反射XSS攻击造成的危害。基于Webkit的浏览器(如Chrome)也添加了一种名为XSS auditor的保护机制,类似于IE中的XSS过滤器。这两种XSS保护机制的目的非常简单。如果浏览器检测到HTML文档中包含恶意代码的输入,则呈现的恶意代码将被删除或转义,并且恶意代码将不会正常呈现,当然,浏览器是否要拦截此恶意代码取决于在浏览器的XSS保护设置上。
至于如何设置浏览器的XSS保护机制,它非常简单。只需在HTTP响应消息的标头中添加一个X-XSS-Protection字段,即可明确告诉浏览器XSS过滤器/审核员应该如何工作。 X-XSS-Protection字段有三个可选配置值
0:表示关闭浏览器的XSS保护机制
1:删除检测到的恶意代码。如果响应消息中未显示X-XSS-Protection字段,则浏览器会将X-XSS-Protection配置视为1,这是浏览器的默认设置。
1; mode=block:如果检测到恶意代码,则不会呈现恶意代码
0×02。 X-XSS-Protection的默认配置不安全。
我们来讨论浏览器中X-XSS-Protection字段的默认设置。实际上,默认设置存在安全风险。
第一个安全风险是:
默认设置会扩展攻击面。例如,攻击者可以使用此默认设置有选择地删除页面上的某些脚本。下图是一个例子。
在上面的示例中,jQuery库被意外删除。发生这种情况的原因是因为浏览器的XSS审计员无法判断jQuery库是由页面本身还是由攻击者构建的。如果此时您删除了与安全相关的js库,您可以想象攻击者会使用js安全库的名称注入恶意代码,以便可以删除js安全库。像这样的攻击方法已经出现,请点击此处了解详情 第二个安全风险是: 默认设置引入了新的漏洞。早在2009年,由于XSS过滤器的缺陷,IE就爆发了一个UXSS漏洞。事实上,攻击者可以将无害标签变成有害标签,因为过滤器有时会变得愚蠢并且错误地替换关键位置中的字符,从而损坏原始文档的结构。 使用精心设计的有效负载,您可以绕过以下属性的限制。最近,我发现发现了许多类似UXSS的漏洞,这些漏洞的原因基本相同。 第三个安全风险: 必须有办法绕过XSS过滤器/审核员。我不相信你可以看看之前被绕过的例子,比如这个, 和这个。从这些绕过的情况中,我们可以看到,无论XSS过滤器/审核器的过滤有多严格,它总是有被绕过的可能性。此外,XSS过滤器/审核员在某些情况下有短板,Chromium团队过去常常明确表示XSS审核员只是防御的一部分,并且不可能阻止所有XSS攻击。 行。在这一点上,每个人都不反对可以绕过XSS过滤器/审核员的想法。 XSS过滤器/审核员的默认设置将部分删除它认为的恶意代码。这有时是一个问题,所以XSS-Protection: 1; mode=block是最好的设置? 乍一看,似乎没有这样的问题,它可以提供一定的防御能力。不幸的是,这样的配置会引入新的漏洞。最明显的例子是 引用泄漏的BUG。此漏洞导致Facebook帐户劫持漏洞。这就是Facebook选择禁用XSS过滤器/审核员的原因。引入的漏洞不仅包括这一漏洞,还有其他漏洞,如 和此漏洞。当然,与上述漏洞相比,此配置引入的漏洞数量相对较少。 0×03。那问题就来了,最好的设置是什么? 简而言之,对于XSS-Protection: 0或XSS-Protection: 1; mode=block取决于您的业务场景,如果在您的业务场景中,您认为您的程序或系统不会有XSS漏洞,或者您无法承受由XSS过滤器/审核员功能引起的BUG,那么您选择配置它作为前者;否则,您仍然选择将其配置为后者。无论如何,旧的驱动程序给你一个建议,不要将其配置为XSS-Protection: 1 *本文原作者:bgusko63190 黑客业务列表介绍和一般分类: 类别:攻击入侵破解开发 1:攻击业务订单:暂时取消所有此类业务订单[仅销售常规IDC流量] 2:入侵业务清单:包括网站源代码,办公系统,黑色系统,教育系统等。 3:破解业务类:软件,加密文件,二次打包,脱壳等。 4:二次开发业务清单:软件二次开发,源代码二次开发等 5:其他业务订单:特洛伊木马[通过所有防病毒],远程控制,特殊软件等 备注:未提及的业务订单可根据主要类别查询或直接联系客户服务。为避免浪费双方时间,请在咨询前阅读:业务交易流程及相关说明 注意:仅接受正式业务,个人无权接受。收集此内容。