改变代码削弱了谷歌防御 click-jacking 攻击的能力。
两周前愚人节恶作剧 Doodle 让谷歌网站带来了安全隐患,谷歌网站出现了一个错误,短暂的允许 click-jacking 利用漏洞诱骗用户执行不自愿的操作,比如改变用户首选项。
谷歌的愚人节恶作剧已经成为互联网上很受欢迎的消遣方式。今年在 4 月 1 日访问谷歌网站的人发现谷歌标志性的主页内容倒着显示。网页开发人员也发现页面上有一个评论显示"!sLooF LIRPA YPPAH,",这实际上是愚人节快乐(Happy April Fool's)倒着写的样子。根据 Netcraft 研究院周五发布的一篇博文显示,该恶作剧也导致了谷歌主页省略了一个至关重要的标头,这个标头用于防止 click-jacking 攻击。
攻击者可以利用此漏洞改变用户的搜索设定,包括关闭安全搜索过滤器。使用 X-Frame-Options 的主要原因是为了防止使用 HTML 内嵌框架标签在第三方网页显示谷歌首页。绕过这一保护,攻击者可以将谷歌的首页放到自己网站,嵌入隐藏代码改变特定链接的功能。Netcraft 的博客中如下解释:
这个问题源于谷歌使用内嵌框架将 google.com 倒着显示为 com.google 的方式。这通常不太可能,因为 google.com 使用 X-Frame-OptionsHTTP 响应标头组织其他网站在一个内嵌框架中展示 google.com 主页。但是为了愚人节玩笑,谷歌通过对 google.com 使用"igu=2"参数绕过了上述问题,不仅能够倒着显示文字,同时也指示服务器完全省略 X-Frame-Options 标头。
HTML 代码允许 com.google 使用一个内嵌框架展示 google.com 倒着的搜索主页。
远程攻击者也可以利用这个「特性」在外部域显示谷歌搜索设置页面,诱使受害者无意中改变这些设置。一个精心策划的 clickjacking 攻击可能不知不觉中进行了,然后受害者的设置在已经被改变之后才会发现。
以下是谷歌搜索设置页面的常规反应,注意 X-Frame-Options 标头的存在:
HTTP/2.0 200 OK
Alternate-Protocol: 443:quic,p=0.5
Cache-Control: private
Content-Encoding: gzip
Content-Length: 35486
Content-Type: text/html; charset=UTF-8
Date: Wed, 01 Apr 2015 09:54:14 GMT
Expires: Wed, 01 Apr 2015 09:54:14 GMT
Server: gws
Set-Cookie: [redacted]
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Firefox-Spdy: h2-15
相反的,通过附加的 igu=2 参数,X-Frame-Options 标头被省略,从而页面可以在攻击者自己网站上的显示:
HTTP/2.0 200 OK
Alternate-Protocol: 443:quic,p=0.5
Cache-Control: private
Content-Encoding: gzip
Content-Length: 33936
Content-Type: text/html; charset=UTF-8
Date: Wed, 01 Apr 2015 09:58:30 GMT
Expires: Wed, 01 Apr 2015 09:58:30 GMT
Server: gws
Set-Cookie: [redacted]
X-XSS-Protection: 1; mode=block
X-Firefox-Spdy: h2-15
因此,任何人都可以在自己网站上的一个内嵌框架内显示谷歌搜索设置网页。通过在显示图片下嵌入图片,攻击者可以可以操纵用户操作。Netcraft 将此问题报告给了谷歌。因此谷歌工程师将不会再采用这种有风险的方法开愚人节玩笑了。
来源: Arstechnica