天天看點

利用Sitemap送出漏洞劫持其它網站排名

利用Sitemap送出漏洞劫持其它網站排名

我個人雖然不建議做搜尋引擎毒化,但了解一些黑帽技術是白帽SEO的必修課。SEO黑帽的常見技術和最新應用至少可以讓我們:

在不能失誤的正規網站上避免黑帽的坑

多管道、深入了解搜尋引擎的工作原理

幫助了解搜尋排名算法的極限在哪裡

從聰明的搜尋引擎毒化技巧中發展白帽技巧

對國内搜尋引擎毒化應用廣泛的賭博、色情等網站和排名也做過一些研究,與相關公司也有些接觸,對這個行業的利潤之大、團隊規模之大、探索及應用之深入等是很欽佩的。不過總體上說,國内搜尋引擎毒化的做法偏向傳統,更多是對搜尋算法的某些已知漏洞或參數的極端、大規模利用。國外一些黑帽對SEO的探索則更出人意料,腦洞更清奇。

前段時間看到一個可以用于搜尋引擎毒化的例子,利用Google Search Console的XML Sitemap送出漏洞,劫持其它人網站原有排名。看完後感覺,還有這種操作?一些人真的思路非常活躍,貌似也有時間,在不停地探索着各種可能性。好在這個漏洞沒有真正用于搜尋引擎毒化,而是在Google的漏洞舉報獎勵計劃中送出的,發現者Tom Anthony是以獲得1337美元獎金。

Tom Anthony不是一般的IT安全人員,顯然是幹SEO的,而且是英國著名SEO公司Distilled産品研發部門的頭。Tom Anthony在他的部落格文章裡詳細介紹了這個漏洞的用法。

簡單說,Tom Anthony通過自己的網站,用ping的機制向Google送出XML版Sitemap(裡面包含索引指令,比如這個例子中利用的hreflang标簽),由于Google及其它網站的漏洞,Google誤以為這個Sitemap是另一個網站的Sitemap,進而使Tom Anthony的網站快速索引,并且劫持了那個網站的排名。

Google允許幾種方式送出sitemap.xml:

在robots.txt檔案中指定sitemap.xml的位置

在 Google Search Console背景送出

把sitemap.xml的位置ping給Google

第3種ping的方式就是向Google的這個URL發get請求:

http://google.com/ping?sitemap=http://www.example.com/sitemap.xml

其中,

http://www.example.com/sitemap.xml

就是要送出的sitemap.xml的檔案。Tom Anthony發現,無論新舊網站,Google收到這個請求後10多秒鐘就會過來抓取sitemap.xml檔案。

接下來還要利用某些網站的open redirect漏洞,也就是完全開放的可以指向其它網站的轉向。一些網站可以通過URL中的參數控制轉向,比如登入後使用者被轉向到某個指定位址:

http://www.abc.com/login?continue=/page.html

也就是abc這個網站使用者登入後被轉向到page.html頁面,繼續正常通路。通常,page.html這個頁面應該是abc.com這個域名上的。但有些網站的程式不大安全,可以轉向到其它網站,如:

http://www.abc.com/login?continue=xyz.com/page.html

使用者登入完,被轉向到另一個網站xyz.com上去了。而且也不一定需要真的登入,隻要通路這個URL,可以是login?,也可以是logout?,或者其它什麼script.php?,就被轉向了。

這就是開放的轉向。這種開放轉向還挺常見的,包括大網站。

Tom Anthony注冊了一個新域名xyz.com,然後利用這兩個漏洞,通過ping向Google送出這樣的sitemap.xml:

http://google.com/ping?sitemap=http://www.abc.com/login?continue=xyz.com/sitemap.xml

xyz.com是他自己的新注冊的域名,abc.com是某支援開放轉向的、有很好搜尋流量的、别人的網站。顯然,sitemap.xml檔案是放在 xyz.com上的,但Google把這個檔案當成是abc.com的sitemap檔案(轉向前的域名)。這樣,搜尋引擎毒化可以控制其它人的網站sitemap檔案,并利用某些指令劫持權重、排名、流量。

Tom Anthony做了很多測試,其中成功的是hreflang指令。他選了一個英國的零售商網站(作為上面例子中的abc.com域名),為了保護對方,并沒有說是哪個網站,在自己的xyz.com域名上采集了對方網站,包括結構和内容,隻修改了位址、貨币之類的資訊。然後在xyz.com域名放上sitemap.xml檔案,裡面列出那個英國網站的URL,但每個URL加上了多語言網站需要用的hreflang指令,通知Google,這個英國網站頁面對應的美國版本在xyz.com上。最後,如前面說的,用ping的機制送出xyz.com上的sitemap.xml檔案,但Google卻誤以為是英國網站abc.com的合法sitemap.xml檔案。

結果是,Google傳遞了英國網站的權重到xyz.com域名上。Tom Anthony這裡說的不是很明确,但我了解,是在美國Google.com上獲得了那個英國網站在Google.co.uk上應有的權重和排名。

48小時内,新域名就開始被索引,并獲得一些長尾詞的排名:

利用Sitemap送出漏洞劫持其它網站排名

在過幾天,重要的商業詞也獲得排名,和Amazon、Toys R Us、沃爾瑪等一較高下:

利用Sitemap送出漏洞劫持其它網站排名

Tom Anthony特意說明,真是個隻有6天的域名,沒有外鍊,内容還是采集的。

Tom Anthony接下來發現,xyz.com的Google Search Console賬号裡顯示,那個英國網站被顯示在xyz.com的外鍊中了(人家并沒連結過來,估計完全不知道有這個事),更嚴重的是,Tom Anthony可以在xyz.com的Google Search Console賬号裡送出那個英國網站的sitemap.xml檔案了,不用ping了。Google貌似是把這兩個本來無關的網站當成一個或者至少是相關的了。

Tom Anthony也測試了其它指令,比如noindex(陷害競争對手于無形啊),rel-canonical,不過都沒管用。Tom Anthony也想過測試其它東西,比如是否xyz.com網站的結構和内容要和abc.com一樣呢?不一樣到什麼程度還能起作用呢?

另一個有意思的地方是,被劫持的網站有可能根本不知道發生了什麼。有些陷害競争對手的負面SEO技術是可以被發現的,比如給對手制造大量垃圾連結,這個在多個工具中是會被清楚顯示的。Tom Anthony發現的這個漏洞,被劫持的網站沒辦法發現是怎麼回事。或根本不知道被劫持了,比如這個案例中的英國網站,沒有在美國營運,是以可能根本不會去看Google美國的排名。

2017年9月23号,Tom Anthony送出了這個bug,經過一番來來去去的讨論,2018年3月25号,Google确認bug已經修正,并同意Tom Anthony釋出部落格文章。

searchengineland的文章還有大段文字介紹Tom Anthony的心路曆程,為什麼不把這個漏洞留着自己用,而是送出給Google?與潛在的流量和利益相比,1千多美金的獎金什麼都不是。情懷啊。感興趣的可以深入讀一下。

最後,Google對這個漏洞的評論是,“這個漏洞一經發現,他們就組織各相關團隊解決了。這是個新發現的漏洞,相信還沒有被利用過。”

繼續閱讀