什么浏览器容易受到多个x-frame选项的攻击

时间:2017-05-23 14:23:28

标签: security testing x-frame-options

我正在进行网络应用测试,发现在使用多个x-frame-options标头条目时存在一些漏洞。哪些浏览器易受多个x-frame选项的攻击?

多个x-frame-options标头条目可能有哪些攻击? ClickJacking似乎是一种很难的方法,因为对于较新的浏览器来说这是不可能的。

1 个答案:

答案 0 :(得分:5)

根据RFC7034 [1],允许设置多个具有相同名称的消息头。当存在这样的消息头时,它们通常是连接的(Firefox),并且浏览器(客户端)形成单个消息头,因为RFC允许这样做。

  

可能存在具有相同字段名称的多个消息头字段   在消息中,当且仅当该标头的整个字段值   字段被定义为以逗号分隔的列表[即,#(值)]。它必须   可以将多个标题字段合并为一个   " field-name:field-value"对,不改变语义   消息,通过将每个后续字段值附加到第一个,每个   用逗号隔开。

对于消息头X-FRAME-OPTIONS,只有这3个值被识别为有效; " DENY "," SAMEORIGIN "和" 允许来自"。这些值是互斥的,这意味着只应存在这些值,并且标题中只能存在其中一个值。

让我们说服务器设置2个同名的邮件标题。

HTTP / 1.1 200 OK
服务器:nginx / 1.11.3
日期:2017年5月24日星期三04:31:29 GMT
内容类型:text / html; charset = UTF-8
内容长度:5870
连接:保持活力
X-Frame-Options:DENY
X-Content-Type-Options:nosniff
X-XSS-Protection:1;模式=块
Set-Cookie:JSESSIONID = 9F18D25951F107BE4C528CD787A3FE2F;路径= /;安全;仅Http
最后修改时间:2017年2月2日星期四22:41:36 GMT
ETag:W /" 5870-1486075296000"
变化:接受编码
X-Frame-Options:SAMEORIGIN
严格运输安全:max-age = 31536000; includeSubDomains
X-Content-Type-Options:nosniff
X-XSS-Protection:1;模式=块

请注意,服务器正在响应2 X-FRAME-OPTIONS 消息标题

X-FRAME-OPTIONS:DENY
X-FRAME-OPTIONS:SAMEORIGIN

在Firefox(不仅仅是Firefox)中,浏览器引擎会将其解释为 X-FRAME-OPTIONS:" DENY,SAMEORIGIN" 。由于这些标头值尽管RFC允许连接,但它们是互斥的,浏览器会尝试将 DENY,SAMEORIGIN 解释为一个sngle元素,并导致反点击劫持措施失败。

这是一个很好的博客[2],它进一步解释了这一点,[3]提到了类似的问题。

[1] https://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html
[2] https://blog.qualys.com/securitylabs/2015/10/20/clickjacking-a-common-implementation-mistake-that-can-put-your-websites-in-danger
[3] https://wordpress.org/support/topic/multiple-x-frame-options-headers-with-conflicting-values-sameorigin-deny/

希望您能发现此信息有用。 :)

干杯,
弥兰陀