仲介交易 SEO診斷 淘寶客 雲主機 技術大廳
很多網站遭到過搜尋引擎劫持攻擊,這是一種目前很常見的駭客攻擊方式。 站長在後臺檢索不到,但是在搜尋引擎結果卻可以看到。 點開這些結果資訊,卻跳轉到博彩、虛假廣告、淘寶搜尋網頁面等網站。 這種情況產生的後果其實很嚴重:
使用者流失:你的網站做了很多的SEO優化或者競價排名後,使用者卻再也無法通過搜尋引擎找到你,這是多麼悲催的一件事。
網站被攔截:如果你的網站被劫持到一些非法網站上導致網站被標記為非法、賭博或者惡意程式碼時,可能直接會被各種瀏覽器和搜尋引擎標記為「惡意網站」從而直接攔截。 世間最痛苦的事莫過於此,我是好人,特麼的可我被人陰了......
可信度降低:苦心經營網站多年,樹立口碑不容易。 一旦被黑,日日被劫持。 從此以後使用者通過搜尋引擎打開你的網站不是色情就是賭博。 正常業務啥都沒了,也別再談什麼可信度和口碑了。
當站長們遇到搜尋引擎劫持怎麼解決呢?不用慌,在這裡我先提供兩種解決方案:請詳細閱讀本文,或者直接聯繫QQ:800034239,找美女安全專家一對一諮詢。
一個真實的搜索劫持案例
前天晚上,有個站長找到我,說是網站搜尋結果頁被劫持了。 被網友認為是博彩網站,引來各路封殺。 今天一上班,我就幫這個使用者把網站處理乾淨,同時也邀請他加入網站衛士的防護體系。 以下是出排查問題的全過程,供各位站長們參考。
場景重現:使用者在百度輸入:site:網站功能變數名稱。 在搜尋結果頁中,能看到很多搜尋結果,但是點開後立刻跳轉到一個博彩網站。 (如下圖)
更詳細查詢結果如下圖:
第一步:判斷劫持方式
這一步主要判斷當前劫持是通過javascript代碼實現還是通過PHP/ASP等腳本代碼實現。
打開fiddler,先按F11下個HTTP請求中斷點,然後點擊百度結果頁,去fiddler裡看請求。 點一下右邊綠色的這個按鈕
每點擊一步,就會通過一個請求。 從結果看到本次搜尋引擎劫持只用了3步,此時我們能得出一個結論:本案例中的這個網站劫持是通過PHP程式碼實現的劫持,劫持過程如下圖所示
從百度連結點過來會跳到使用者網站本身,此時沒有載入任何js和css等資源就直接又跳到博彩網站。
這一步是如何實現從使用者網站跳轉到博彩網站的呢?原理其實很簡單,請看下圖:
這個跳轉的HTTP請求代碼是302,通過一個location重定向到博彩網站。 由於該網站使用的是PHP程式,在PHP裡通過header()函數即可實現頁面重定向。
第二步:查找可疑代碼
既然知道了劫持的原理和目標博彩網站,就比較容易查出惡意程式碼了。 該使用者的伺服器是windows2003,通過遠端連線上去,在windows系統下可以用findstr命令輕鬆查找任意文本所在的檔位置。 在本案例中我們只需要查找哪些檔裡出現了86896這個關鍵字即可。 命令列下構造查詢命令如下:
findstr /s /i "86896" D:\web\xxx.org\*.php
關鍵字後面跟的是網站的根目錄,這行命令的意思是遍歷網站根目錄下的所有php檔,查找出其中包含「86896「字元的檔。 執行這個命令我們可以得到以下結果輸出:
通過結果可以很明顯的看出,駭客入侵了該網站並且修改了discuz論壇裡\source\class\class_core.php這個核心檔,在這個檔裡面加入了實現劫持的location跳轉惡意程式碼。
這個駭客植入的惡意程式碼還是比較「小白「的,沒有用任何加密等其他隱藏手段,直接可以通過關鍵字查找出來。 完整的惡意程式碼如下圖:
第三步:刪除代碼
以上這段惡意程式碼的功能就是把所有user-agent和referer裡包含搜尋引擎資訊的網站訪問請求內容全部劫持為博彩網站,幫使用者刪除這一段PHP代碼後,網站就立刻恢復正常了。
小結
通過這個案例分析可以看到,這種搜尋引擎流量劫持攻擊的技術含量並沒有那麼深不可測,通過兩個步驟:首先判斷劫持方式,如果是js代碼劫持,找出來惡意js代碼刪除就行,如果是腳本劫持,請參考本文介紹的方式; 其次就是用findstr(windows)命令或者grep(linux)命令去伺服器上找出惡意程式碼所在的檔,刪除惡意程式碼即可。 希望通過本文的介紹,能在廣大站長應對此類駭客攻擊時有所説明
另外,分析中使用到的工具:Fiddler (www.telerik.com/fiddler),國內很多下載站也能下到這個工具。