很多站長可能都遇到過一種黑客攻擊方式,就是在搜索引擎結(jié)果頁中看到自己的網(wǎng)站,但是點(diǎn)開后卻跳轉(zhuǎn)到一些其他網(wǎng)站,比如*,虛假廣告,淘寶搜索頁面等等。
這種情況產(chǎn)生的直接后果就是:
用戶流失。試想如果你做的是個(gè)電商網(wǎng)站,做了很多的SEO優(yōu)化或者競價(jià)排名后,用戶卻再也無法通過搜索引擎找到你的網(wǎng)站,這是多么悲催的一件事。
網(wǎng)站被攔截。如果你的網(wǎng)站被劫持到一些非法站點(diǎn)上導(dǎo)致網(wǎng)站被標(biāo)記為非法、賭博或者惡意代碼時(shí),可能直接會(huì)被各種瀏覽器和搜索引擎標(biāo)記為“惡意網(wǎng)站”從而直接攔截。世間最痛苦的事莫過于此,我是好人,特么的可我被人陰了……
可信度降低。你苦心經(jīng)營網(wǎng)站多年,樹立口碑不容易。一日被黑,日日被劫持。從此以后用戶通過搜索引擎打開你的網(wǎng)站不是色情就是賭博。正常業(yè)務(wù)啥都沒了,也別再談什么可信度和口碑了。
其實(shí)當(dāng)站長們遇到搜索引擎劫持時(shí)根本不用慌,認(rèn)真閱讀下文即可:
回到正題,昨天晚上有個(gè)用戶找到我,說是網(wǎng)站搜索結(jié)果頁被劫持了,弄現(xiàn)在到處都認(rèn)為他的網(wǎng)站是個(gè)*網(wǎng)站,各路封殺蜂擁而至。今天一上班就幫這個(gè)用戶把網(wǎng)站處理干凈,同時(shí)也加入了網(wǎng)站衛(wèi)士的防護(hù)體系,整理出排查問題的全過程供各位站長們參考。
分析中使用到的工具:Fiddler (官網(wǎng):),國內(nèi)很多下載站也能下到這個(gè)工具。
場景重現(xiàn):用戶在百度輸入:XXX(他網(wǎng)站的關(guān)鍵字)
結(jié)果頁中能看到,但是點(diǎn)開后立刻跳轉(zhuǎn)到一個(gè)*網(wǎng)站
然后的故事大家都知道了,悲劇如下圖:
手把手第一步:判斷劫持方式
這一步主要判斷當(dāng)前劫持是通過javascript代碼實(shí)現(xiàn)還是通過PHP/ASP等腳本代碼實(shí)現(xiàn)。
打開fiddler,先按F11下個(gè)HTTP請求斷點(diǎn),然后點(diǎn)擊百度結(jié)果頁,去fiddler里看請求。點(diǎn)一下右邊綠色的這個(gè)按鈕
每點(diǎn)擊一步,就會(huì)通過一個(gè)請求。從結(jié)果看到本次搜索引擎劫持只用了3步,此時(shí)我們能得出一個(gè)結(jié)論:本案例中的這個(gè)網(wǎng)站劫持是通過PHP程序代碼實(shí)現(xiàn)的劫持,劫持過程如下圖:
從百度鏈接點(diǎn)過來會(huì)跳到用戶網(wǎng)站本身,此時(shí)沒有加載任何js和css等資源就直接又跳到*網(wǎng)站。
這一步是如何實(shí)現(xiàn)從用戶網(wǎng)站跳轉(zhuǎn)到*網(wǎng)站的呢,原理其實(shí)很簡單,請看下圖:
這個(gè)跳轉(zhuǎn)的HTTP請求代碼是302,通過一個(gè)location重定向到*網(wǎng)站。由于該網(wǎng)站使用的是PHP程序,在PHP里通過header()函數(shù)即可實(shí)現(xiàn)頁面重定向。
手把手第二步:查找可疑代碼
既然知道了劫持的原理和目標(biāo)*網(wǎng)站,就比較容易查出惡意代碼了。該用戶的服務(wù)器是windows2003,通過遠(yuǎn)程連接上去,在windows系統(tǒng)下可以用findstr命令輕松查找任意文本所在的文件位置。在本案例中我們只需要查找哪些文件里出現(xiàn)了86896這個(gè)關(guān)鍵字即可。命令行下構(gòu)造查詢命令如下:
findstr /s /i “86896″ D:\web\xxx.org\*.php
關(guān)鍵字后面跟的是網(wǎng)站根目錄,這行命令的意思是遍歷網(wǎng)站根目錄下的所有php文件,查找出其中包含“86896“字符的文件。執(zhí)行這個(gè)命令我們可以得到以下結(jié)果輸出:
通過結(jié)果可以很明顯的看出,黑客入侵了該網(wǎng)站并且修改了discuz論壇里\source\class\class_core.php這個(gè)核心文件,在這個(gè)文件里面加入了實(shí)現(xiàn)劫持的location跳轉(zhuǎn)惡意代碼。
這個(gè)黑客植入的惡意代碼還是比較“小白“的,沒有用任何加密等其他隱藏手段,直接可以通過關(guān)鍵字查找出來。完整的惡意代碼如下圖:
這段惡意代碼的功能就是把所有user-agent和referer里包含搜索引擎信息的網(wǎng)站訪問請求內(nèi)容全部劫持為*網(wǎng)站,幫用戶刪除這一段PHP代碼后,網(wǎng)站就立刻恢復(fù)正常啦~
通過這個(gè)案例分析,希望讓站長知道,這種搜索引擎流量劫持攻擊的技術(shù)含量并沒有那么深不可測,通過兩個(gè)步驟:
首先判斷劫持方式,如果是js代碼劫持,找出來惡意js代碼刪除就行,如果是腳本劫持,請參考本文介紹的方式。
其次就是用findstr(windows)命令或者grep(linux)命令去服務(wù)器上找出惡意代碼所在的文件,刪除惡意代碼即可。
SEO專題推薦:
關(guān)鍵詞優(yōu)化專題:網(wǎng)站關(guān)鍵詞優(yōu)化沒效果?來這里學(xué)習(xí)最實(shí)用的關(guān)鍵詞優(yōu)化技巧!
內(nèi)鏈優(yōu)化專題:最能提升網(wǎng)站權(quán)重的內(nèi)鏈部署優(yōu)化技巧與方法
外鏈建設(shè)專題:高質(zhì)量自然外鏈怎么做?讀完這些你將質(zhì)的飛躍
網(wǎng)站降權(quán)專題:2015年最有用的網(wǎng)站降權(quán)、被K、被黑、被攻擊的解決方法
用戶體驗(yàn)專題:學(xué)習(xí)完這些,作為站長的你可以秒懂如何做網(wǎng)站用戶體驗(yàn)
行業(yè)網(wǎng)站專題:優(yōu)化行業(yè)網(wǎng)站的“葵花寶典”看完后無優(yōu)化壓力
申請創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!