歡迎光臨
每天分享高質量文章

利用漏洞更改Google搜尋排名

來自:FreeBuf.COM

http://www.freebuf.com/vuls/168589.html

*參考來源:tomanthony,FreeBuf小編clouds編譯

只需12美元註冊購買一個域名,我就能在Google搜尋結果中實現與亞馬遜、沃爾瑪等高價值關鍵詞相同的廣告排名。按照Google Adwords(谷歌付費廣告業務)來看,類似Amazon和Walmart這樣的關鍵詞,每次點選需要付費給谷歌的廣告競價是1美元,所以很多大公司每月都需要花費數十萬美元來在谷歌搜尋排名中打廣告,但是,我這種方式可是免費的哦。

我的這種免費搜尋排名方式原因在於Google自身的一個系統漏洞,目前Googel方面已經進行了修複,我也獲得了$1337的賞金。我想這可能是Google第一次因其搜尋結果而被髮現的漏洞吧,該漏洞可以影響到谷歌的廣告競價排名。

先導概念

sitemap:站點地圖(sitemap)是一種檔案,你可以透過該檔案列出你網站上的網頁,從而將你網站內容的組織架構告知 Google 和其他搜尋引擎。Googlebot 等搜尋引擎網頁抓取工具會讀取此檔案,以便更加智慧地抓取你的網站。站點地圖最早由Google提出,現在在多種搜尋引擎中被支援,其格式通常為sitemap.xml,且有一定的編寫規範。

向Google平臺提交sitemap:網站管理人員製作好sitemap檔案之後,可以向谷歌搜尋管理平臺提交這個sitemap檔案,Google平臺對網站管理權進行驗證之後,即會成功解析該sitemap檔案,根據其後端演演算法把其中內容編入索引,以便使用者能利用Google搜尋引擎對你的網站進行更好的檢索。搜尋引擎平臺的這種sitemap提交功能都是開放免費的,如Google的提交介面、Yahoo提交介面和百度的提交介面。

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檔案命名,也能實現網站sitemap生效(具體可參考google-support)。

漏洞介紹

Google提供了一個開放的URL功能,你可以用它來’ping’指向一個XML站點地圖(sitemap),該站點地圖中包含瞭如hreflang屬性等索引指令,會被後端獲取解析。我發現,如果攻擊者向Google上傳託管了一個這樣的站點地圖,很多網站都能‘ping’到,在Google中,它甚至會把這個惡意站點地圖信任為受害者客戶端網站的站點地圖。

經過測試,我花了12美元註冊了一個個人網站,最終能把該個人網站上的一些高價值關鍵詞放到Google搜尋引擎的首頁版面。

XML站點地圖 & Ping機制

谷歌允許某網站的網站管理員上傳sitemap檔案到谷歌搜尋平臺,以讓谷歌搜尋引擎根據演演算法實現對其它網站的智慧檢索,比如說,sitemap.xml中包含的hreflang語言索引會標記出網站存在多少地區版本,它會告知谷歌www.example.com/english/這是一個英文版本,而這www.example.com/deutsch/是一個德文版本,但hreflang語言索引貌似存在連結權重(link equity)’相互借用’的情況,如德文版本的網站會借用點選量高的英文版本網站的連結權重來增加其在Google.de中的排名。

在sitemap檔案的提交中,谷歌的宣告似乎有些混亂,在提交站點地圖的第一步,它宣告可以透過ping方式提交sitemap檔案,但在後續步驟中它又跳出一個如下警告:

然而,根據經驗來看,當然可以透過ping方式來提交sitemap檔案,谷歌爬蟲會在10多秒內讀取到該sitemap檔案,但關鍵是,谷歌也在宣告頁面中多次提到,透過ping方式提交的sitemap檔案不會顯示在搜尋管理介面(Search Console)的站點地圖報告中:

作為關聯性測試 由此我也嘗試以sitemap的XML檔案方式,新增一些noindex和rel-canonical類似的索引指令,而且也測試過一組XML漏洞利用,但可惜貌似谷歌根本就不會解析這些指令。

Google Search Console 中的站點地圖檔案提交

在谷歌搜尋管理介面(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(企業搜尋引擎最佳化和內容營銷平臺)也能反映出其逐漸提升的流量資訊:

在谷歌搜尋管理介面中,其顯示已有超過百萬的搜尋展示次數,以及超過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 – 谷歌告知我他們正在對漏洞進行一些後續修複,允許我披露漏洞


●編號595,輸入編號直達本文

●輸入m獲取文章目錄

推薦↓↓↓

大資料與人工智慧

更多推薦18個技術類公眾微信

涵蓋:程式人生、演演算法與資料結構、駭客技術與網路安全、大資料技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等。

贊(0)

分享創造快樂