Google搜索引擎中的安全漏洞——通过开放重定向窃取其他站点的权重 – 作者:ijzmesec

作为日常研究工作的一部分,作者最近发现了一个问题,允许攻击者向Google提交一个XML站点地图,以查找未被谷歌收录的的站点。由于这些文件可以包含索引指令,如hreflang,因此攻击者可以利用这些指令帮助自己的网站在Google搜索结果中的排名。

为了测试,仅仅花了12美元就完成了测试环境的搭建,将一个新注册的没有任何入站链接的域名,推在了谷歌搜索结果的顶级收费搜索主题结果的第一页排名中。

XML 站点地图和Ping机制

Google允许通过提交XML网站地图,用于帮助引擎爬虫主动发现URL,他还允许使用hreflang指令用于翻译一个页面国际化的各不同语言版本的内容(例如,“hey Google, this is the US page, but I have a Germanpage on this URL…”)。目前还不清楚Google是如何使用解析和使用这些指令的(就像任何与Google搜索算法相关的指令一样),但似乎hreflang允许一个URL从另一个URL “借用”索引权重和将一个已有URL的索引权重用于另一个URL(比如大多数人链接到US.com版本,但是德国版的版本可以借用这个权重,以便在Google.de中获得更好的排名)。

你可以通过Google Search Console,在robots.txt中或通过特殊的“ping”URL,为你的域名提交XML 站点地图。谷歌自己的文档似乎有点矛盾。在页面的顶部,他们建议是通过ping机制提交站点地图,但在页面的底部又对此发出警告:

1.png

 

但是,根据经验判断,你完全可以通过ping机制提交一个新的XML站点地图,Googlebot通常在ping后的10-15秒内获取文件。重要的是,Google在页面上也提到过几次,如果你通过ping机制提交站点地图,它将不会显示在你的搜索Console中:

2.png

作为一个相关测试,我测试了是否可以通过XML站点地图添加其他已知的搜索指令(比如noindex,rel-canonical),以及尝试一堆XML攻击,但似乎对Google并没有使用到。

Google Search Console(GSC)提交

如果你尝试在GSC中提交XML站点地图,而且其中包含了你未被授权的其他域的URL,则GSC会拒绝他们:

3.png

开放重定向

许多网站使用URL参数来控制重定向:

4.png

在这个例子中,我将被重定向(登录后)到page.html。安全限制不好的网站允许使用所谓的“开放重定向”,这些参数允许重定向到不同的域:

5.png

通常不需要任何交互(如登录),所以会立即将用户重定向:

6.png

开放重定向非常普遍,通常认为不有什么危险;由于这些原因,Google也没有将他们纳入到bug奖励计划中。但是,在可能的情况下,企业应该会尽量避免这些情况发生,但你通常可以绕过他们的保护:

7.png

Tesco是一家英国零售商,收入超过500亿英镑,超过10亿英镑的收入来自其网站。我向特易购(Tesco)报告了这个例子(还有在我的研究中发现的其他公司),他们已经修复了这个问题。

通过打开重定向Ping Sitemaps

现在,你可能已经猜到了我要尝试的方法。事实证明,当你ping一个XML站点地图时,如果你提交的URL是一个重定向,谷歌将跟着他重定向,即便跨域了。而且,它似乎还将该XML站点地图与进行重定向到域进行关联,并将重定向后发现的站点地图视为该域的授权。例如:

8.png

本例中,evil.xml站点地图托管在blue.com上,但Google会将其关联为green.com的所有权并为其授权。使用此功能,你可以为没有权限的网站提交XML站点地图,并发送Google搜索指令。

实验:使用hreflang指令免费“窃取”权重排名

现在我了知道了各个细节部分,但是还没有证实谷歌会真的相信跨域重定向的XML站点地图,所以我做了一个试验来测试它。我还做了很多更小的测试来了解了解(可能能各种死路)各部分,但并没有指望这个试验能够像预期的那样行得通。

我为一家没有在美国经营的英国零售公司创建了一个虚假域名,并且在AWS服务器上创建了一个模仿该网站(主要是通过收集合法内容并对其进行重新设计,例如修改货币/地址等)。为了保护他们,在此我隐匿公司名(和行业),我们姑且称他为victim.com。

我在evil.com上创建了一个虚假的站点地图,只包含victim.com的URL。这些URL包含hreflang条目指向evil.com上等效URL,表明victim.com的美国版本。现在,我用Google的ping机制通过victim.com上的开放重定向URL提交了网站地图。

在48小时内,该网站开始有了少量来自于搜索引擎为长尾访问(SEMRush屏幕截图):

9.png

 

再过两天,可以有相关主题的结果第一页上开始出现,同页上有如亚马逊和沃尔玛等。

 10.png

此外,evil.com的Google Search Console也显示victim.com正在链接到evil.com,但实际上这明显是不对的:

11.png

同时,我还发现我也能在evil.com的GSC中为victim.com提交XML站点地图:

12.png

Google似乎已将这些网站链接起来,在evil.com的GSC现在有些功能可以影响victim.com的设置。我现在也可以跟踪我提交的站点地图的索引(你可以看到我现在有数千页索引)。

Searchmetrics显示了流量的增长和其价值:

13.png

此站点的GSC显示通过Google有超过100万的搜索,展示次数和超过10,000次点击次数;然而,除了提交XML站点地图,我什么都没做!

注意到,我并没有对这个evil站点做任何展示,如果想要利用他来欺骗人们点击的话,应该可以赚很多钱。或者通过设置广告,甚至还可以想办法把这种流量变现。在我看来,这给Google访问者带来了严重的风险,同时也给依赖Google搜索流量的公司带来了风险。访问量还在增长,但我关闭了我的试验站,并放弃了后续实验,因为害怕造成损害。这是一个真正黑客应该具有的职业道德,点赞。

讨论

对于victim.com来说,这种方法完全无法检测,XML站点地图不会显示在他们的终端,如果有人做了想我做事情的,并且用它谋取经济利益的话,那么也没有啥方法监控的到。除了你的竞争对手会对你的站点排名感到不可思意外。(如上面例子中的亚马逊,沃尔玛和塔吉特等的搜索结果,他们可都是花了重金才拿到那个位置的)。

就黑帽SEO而言,这是一个明确的用法,而且这使我意识到对算法漏洞的彻底利用第一个例子,而不是操纵其他排名因子。这个问题的潜在财务影响的也并非微不足道,想象一下以特易购或类似网站为目标的潜在利润(如果有机会我会做更多的测试以便收集信息,但会严格限制在没有任何潜在的危害的情况下)。

Google已经为此奖励了1337美元的奖金,一如既往,于Google团队打交道非常开心,感谢他们。

披露时间表

•2017年9月23日,我提交初步的bug报告。

•2017年9月25日,谷歌回应 – 他们调整了bug并正在研究它。

•2017年10月2日,我发送了更多细节。

•10月9日到11月6日,一些来回状态更新。

•2017年11月6日 – 谷歌表示:“本报告难以确定可以采取哪些措施来防止此类行为及其对搜索结果的影响。我已与团队联系以获得最终决定。正对你的报告,他们一直在对数据进行筛选,以确定你描述的行为有多普遍,以及这是否应该立即采取相应措施。”

2017年11月6日,我回复说,他们没有遵循针对ping的站点地图的跨域重定向,没有什么好的理由,它可能只是GSC的唯一功能。

2018年1月3日,我要求更新状态。

2018年1月15日,谷歌搜索回复道:“对于延期抱歉,我不想过早结束这份报告,因为我们还无法做出明确的决定,是否可以用重定向链解决这种行为而不会破坏很多合法用例。我已经回到团队审查这份报告以得到最终答案,我已经回到团队审查这份报告以获得最终答案,并会在本周回复你。”

2018年2月15日,谷歌更新,让我知道报告中存在一个错误,VRP董事会将讨论奖励。

2018年3月6日,谷歌让我知道通知过他们已批复1337美元的奖金。

2018年3月6日,我与Google分享了这篇文章的草稿,并要求允许得到公开。

2018年3月12日,谷歌让我知道他们还没有完成修复,并要求不要公开。

2018年3月25日,谷歌证实该修补程序已经生效,并允许我发布文章。

本文编译自 Tom Anthony的博客,原文地址

来源:freebuf.com 2018-04-03 17:59:03 by: ijzmesec

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论