只需 12 美元注册购买一个域名, 我就能在 Google 搜索结果中实现与亚马逊, 沃尔玛等高价值关键词相同的广告排名. 按照 Google Adwords(谷歌付费广告业务)来看, 类似 Amazon 和 Walmart 这样的关键词, 每次点击需要付费给谷歌的广告竞价是 1 美元, 所以很多大公司每月都需要花费数十万美元来在谷歌搜索排名中打广告, 但是, 我这种方式可是免费的哦.
我的这种免费搜索排名方式原因在于 Google 自身的一个系统漏洞, 目前 Googel 方面已经进行了修复, 我也获得了 $1337 的赏金. 我想这可能是 Google 第一次因其搜索结果而被发现的漏洞吧, 该漏洞可以影响到谷歌的广告竞价排名.
先导概念
sitemap : 站点地图 (sitemap) 是一种文件, 你可以通过该文件列出你网站上的网页, 从而将你网站内容的组织架构告知 Google 和其他搜索引擎. Googlebot 等搜索引擎网页抓取工具会读取此文件, 以便更加智能地抓取你的网站. 站点地图最早由 Google 提出, 现在在多种搜索引擎中被支持, 其格式通常为 sitemap.xml, 且有一定的编写规范.
向 Google 平台提交 sitemap : 网站管理人员制作好 sitemap 文件之后, 可以向 谷歌搜索管理平台 https://www.google.com/webmasters/tools/ 提交这个 sitemap 文件, Google 平台对网站管理权进行验证之后, 即会成功解析该 sitemap 文件, 根据其后端算法把其中内容编入索引, 以便用户能利用 Google 搜索引擎对你的网站进行更好的检索. 搜索引擎平台的这种 sitemap 提交功能都是开放免费的, 如 Google 的提交接口 http://www.google.com/webmasters , Yahoo 提交接口 http://siteexplorer.search.yahoo.com/ 和 百度的提交接口 https://ziyuan.baidu.com/linksubmit/url .
sitemap 文件的提交方式 : 在具备对注册网站管理权的情况下, 除上面所说的 sitemap 管理接口提交外, 还可以通过网站'ping'方式 直接提交, 如谷歌的 http://www.google.com/ping?sitemap=http://www.example.com/ ,live 的 https://www.bing.com/webmaster/ping.aspx?sitemap=http://www.example.com/ , 等等. 除此之外, 还有传统的 robots.txt 文件命名 https://support.google.com/webmasters/answer/6062596?hl=zh-Hans , 也能实现网站 sitemap 生效(具体可参考 google-support https://support.google.com/webmasters/answer/6062596?hl=zh-Hans ).
漏洞介绍
Google 提供了一个开放的 URL 功能, 你可以用它来'ping'指向一个 XML 站点地图(sitemap), 该站点地图中包含了如 hreflang 属性等索引指令, 会被后端获取解析. 我发现, 如果攻击者向 Google 上传托管了一个这样的站点地图, 很多网站都能'ping'到, 在 Google 中, 它甚至会把这个恶意站点地图信任为受害者客户端网站的站点地图.
经过测试, 我花了 12 美元注册了一个个人网站, 最终能把该个人网站上的一些高价值关键词放到 Google 搜索引擎的首页版面.
XML 站点地图 & Ping 机制
谷歌允许 某网站 http://www.example.com/ 的网站管理员上传 sitemap 文件到谷歌搜索平台, 以让谷歌搜索引擎根据算法实现对其它网站的智能检索, 比如说, sitemap.xml 中包含的 hreflang 语言索引会标记出网站存在多少地区版本, 它会告知谷歌 http://www.example.com/english/ 这是一个英文版本, 而这 http://www.example.com/deutsch/ 是一个德文版本, 但 hreflang 语言索引貌似存在链接权重(link equity)'相互借用'的情况, 如德文版本的网站会借用点击量高的英文版本网站的链接权重来增加其在 Google.de 中的排名.
在 sitemap 文件的提交中, 谷歌的声明似乎有些混乱, 在提交站点地图的第一步, 它声明可以通过 ping 方式提交 sitemap 文件, 但在后续步骤中它又跳出一个如下警告:
然而, 根据经验来看, 当然可以通过 ping 方式来提交 sitemap 文件, 谷歌爬虫会在 10 多秒内读取到该 sitemap 文件, 但关键是, 谷歌也在声明页面中 多次提到 https://support.google.com/webmasters/answer/183669?hl=zh-Hans , 通过 ping 方式提交的 sitemap 文件不会显示在搜索管理接口 (Search Console) 的站点地图报告中:
作为关联性测试 由此我也尝试以 sitemap 的 XML 文件方式, 添加一些 noindex 和 rel-canonical 类似的索引指令, 而且也测试过一组 XML 漏洞利用, 但可惜貌似谷歌根本就不会解析这些指令.
Google Search Console 中的站点地图文件提交
在 谷歌搜索管理接口 https://www.google.com/webmasters/tools/ (Search Console)中, 如果你要上传提交某网站的一个 sitemap.xml 文件, 如果你对该网站不具备管理权限, 不能通过谷歌的权限机制验证, 那么谷歌就会拒绝这种 sitemap 文件. 如下所示:
稍后我们会回到这里作些测试.
开放重定向
很多网站会使用 URL 参数来控制重定向:
就比如上面这个例子, 登录 green 网站后我会被重定向到 page.html, 有些过滤措施太差的网站则会使用 "开放式重定向" 参数, 让访问动作重定向到不同的网站域, 如:
这种 "开放式重定向" 参数环境下, 通常不需要登录等其它交互动作, 就会立即把用户访问重定向:
由于开放重定向应用非常普遍, 不具太多安全威胁, 所以谷歌没有把这种问题纳入到漏洞奖励计划. 虽然很多公司都会对恶意的开放重定向进行过滤, 但也可想办法绕过这种过滤措施, 如下对 Tesco 公司网站的开放重定向绕过漏洞:
Tesco 是一家盈利超过 500 亿英镑的英国零售商, 有超过 10 亿英镑的收入来自其网销渠道. 我向 Tesco 公司报告了该漏洞, 目前他们已经修复了这个漏洞.
通过开放重定向方式'Ping' sitemap 文件
现在, 你可能猜到我想做什么了, 事实证明, 当用谷歌网站去'ping'一个 XML 的 sitemap 文件时, 如果你在其中提交的 URL 是一个重定向链接时, 谷歌会遵从重定向跳转, 甚至是跨域的网站跳转. 更重要的是, 它貌似还会将 XML 站点地图文件与进行重定向的网站域相关联, 并将重定向后找到的站点地图文件, 视为该网站域经过授权验证的文件, 如:
该例中, 恶意站点地图文件 evil.xml 托管在网站 blue.com 上, 但谷歌会把它误认为是来自网站 green.com 上经过验证的文件, 使用这种方式, 你可以向谷歌上传提交一个自己不具管理权限网站的 sitemap 文件, 由此, 该不具管理权限的网站就会被谷歌在后端进行检索导向更改.
测试: 使用 hreflang 属性免费 "窃取" 网站的链接权重和排名
现在, 有了这些尝试之后, 我还不确定谷歌是否会信任一个跨域的重定向站点地图文件, 所以我只有做个测试来证明. 为了理解这种机制, 我也对重定向中的各部份参数都作了一系列测试.
我为一家总部在英国的零售公司创建了一个假域名, 并架构了一个模拟该网站的 AWS 服务器, 主要目的是为了对网站页面进行一些改变, 如更改资金 / 地址等信息. 下文中我已经匿名了该公司名称, 我们暂且称它为受害者网站 victim.com.
我先创建了一个 sitemap 文件, 并把它托管在 evil.com 网站上, 其中 sitemap 文件只包含了 victim.com 网站相关的 URL 信息, 这些 URL 是一些 hreflang 属性的不同 victim.com 链接指向, 其中说明了它是英文版本的 victim.com 网站. 然后, 我把这个 sitemap 文件通过谷歌的'ping'方式, 利用跳转到 victim.com 网站上的开放重定向 URL 手段, 提交上传到了谷歌搜索管理接口中.
在两天内, 该 victim.com 网站的流量慢慢呈上升趋势:
几天之后, 它在谷歌搜索引擎结果中竟然与关键字 亚马逊 & 沃尔玛 的排名相同:
而且, 谷歌搜索管理接口中关于 victim.com 网站的信息中, 竟然能显示其与 evil.com 网站有指向关系:
还有, 现在我发现竟然也可以在 evil.com 的谷歌搜索管理接口中, 提交上传关于 victim.com 网站的 sitemap 文件:
这貌似是因为谷歌后端把两个网站指向关联之后, 就能通过 evil.com 的搜索管理接口间接对 victim.com 的 sitemap 文件进行更改控制吧. 可以为提交的 sitemap 文件进行一些索引跟踪, 看看下图吧, 已经有上千页面的索引了, Searchmetrics https://www.searchmetrics.com/ ( 企业搜索引擎优化和内容营销平台 )也能反映出其逐渐提升的流量信息:
在谷歌搜索管理接口中, 其显示已有超过百万的搜索展示次数, 以及超过 10,000 多次来自谷歌搜索引擎的点击量! 我可没付什么百万美金广告费, 仅只是提交了一个 sitemap 文件就能这样了!
这种方式, 你根本就不会注意到我的那个恶意网站 evil.com, 就这样就能实现搜索诈骗, 设置任意广告, 更严重的是我可以把源源不断的流量变现. 这种恶意方式, 一方面会给谷歌搜索使用者带来欺诈, 另外也会对依赖谷歌搜索流量的公司形成风险.
总结 & 漏洞威胁
这种方法受害者网站 victim.com 根本无法检测到这种搜索导向的改变, 而且攻击者提交的 sitemap 文件也不会出现在其终端上, 如果你按照以上方法, 利用不同语言版本站点的链接权重, 就能完全做到隐蔽无形, 竞争对手可能会对你的站点排名觉得困惑, 一脸懵逼.
在当今互联网时代, 流量对于很多大公司而言都至关重要, 其中涉及的访问量, 点击率都会转换为经济效益. 而搜索引擎优化 SEO (Search Engine Optimization)本来就是一门大学问, 以上方法可以间接对目标网站进行搜索排名改变, 进而影响到其网站流量, 最终可能改变的是其公司经济利益. 也好, 谷歌非常重视这个漏洞, 最终支付了我 $1,337 美元的赏金.
漏洞报送进程
2017.9.23 - 漏洞初报
2017.9.25 - 谷歌确认漏洞并进行分类
2017.10.2 - 我向谷歌提供更多证明
......
2018.2.15 - 谷歌考虑赏金
2018.3.6 - 谷歌奖励我 $1337
2018.3.25 - 谷歌告知我他们正在对漏洞进行一些后续修复, 允许我披露漏洞
来源: http://www.tuicool.com/articles/zmM77bi