在已经过去的4月1日愚人节中,Google照例祭出了其拥有的.google的域名,来和大众开个愚人节玩笑。该域名(com.google)是和Google域名正好颠倒的结构,而用户点击进入con.google也会看到一个完全镜像的站点。
这本来只是一个愚人节的玩笑,但是Google这回玩大了。今天的玩笑不经意破坏了Google原有主页。这使得它容易受到用户界面纠正攻击,如click-jaching。该漏洞会允许远程攻击者改变用户的搜索设置,包括关闭安全搜索过滤器。
Netcraft在17日报道了这个系统安全问题,该问题来源于com.google如何使用iframe来显示google.com中的镜像内容。一般情况下,Google使用X-Frame-Options HTTP响应头来防止其他的网站在iframe中显示。但是为了在愚人节玩一把,Google也许是忙晕了,竟然通过传递参数“IGU=2”到google.com,它不仅告诉它镜像显示的内容,而且还指示服务器完全忽略X-Frame-Options HTTP响应头。
由于这个小小的变化,使得远距离的攻击者可以利用这个漏洞在其他的域名中显示google搜索的页面,以此来诱骗受害者不知不觉的进入更改设置。只要一个精心设置好的clickjacking就能够骗取许多无知觉的受害者。
下文中高亮的部分就是google原有的设置:https://www.google.com/preferences?hl=en&fg=1. Note the presence of the X-Frame-Options header:
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]
[highlight]X-Frame-Options: SAMEORIGIN[/highlight]
X-XSS-Protection: 1; mode=block
X-Firefox-Spdy: h2-15
Conversely, with the igu=2 parameter appended, the X-Frame-Options header was omitted from the response, allowing the page to be displayed in a frame on an attacker's own website:
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
而这里报告的这些修改即使用户继续使用正常的google.com也仍然会持续存在。但是万幸的是,Netcraft已经将这个问题报告给Google,并且目前这个问题已经被修复了。