攻擊者在入侵網(wǎng)站后,常常會通過惡意劫持流量來獲取收益,從而實現(xiàn)流量變現(xiàn)。有一些黑帽劫持的手法堪稱防不勝防,正常的訪問行為很難發(fā)現(xiàn)異常。今天給大家分享一下常見的網(wǎng)站劫持手法和排查思路。
我們可以按照基于不同隱藏目的的常見劫持手法,來做一個簡單的分類:
1、將爬蟲與用戶正常訪問分開,實現(xiàn)搜索引擎快照劫持
2、將移動端與PC端的訪問分開,實現(xiàn)移動端的流量劫持
3、根據(jù)用戶訪問來源進行判斷,實現(xiàn)特定來源網(wǎng)站劫持
4、如果獲取管理員的真實IP地址,實現(xiàn)特定區(qū)域的流量劫持
5、按照訪問路徑/關(guān)鍵詞/時間段設(shè)置,實現(xiàn)特定路徑/關(guān)鍵詞/時間段的流量劫持
基于以上,實現(xiàn)的方式有很多種,比如客戶端js劫持、服務(wù)端代碼劫持、301重定向、惡意反向代理、IIS模塊劫持等。
01、客戶端js劫持
在網(wǎng)頁中插入js腳本,通過js進行url跳轉(zhuǎn),一般情況下,會通過js混淆加密來增加識別難度。
如下:通過js劫持從搜索引擎中來的流量。
<script>var s=document.referrer; if(s.indexOf("baidu")>0||s.indexOf("soso")>0||s.indexOf("google")>0||s.indexOf("yahoo")>0||s.indexOf("sogou")>0||s.indexOf("youdao")>0||s.indexOf("bing")>0){self.location='http://www.xxxx.com'; } </script>
排查思路:查看網(wǎng)頁源代碼或者抓包分析http流量,找到源代碼中插入的js代碼,刪除js代碼后恢復(fù)。
02、服務(wù)端代碼劫持
網(wǎng)站源碼被篡改,在首頁或配置文件中引入惡意代碼。
如下:通過判斷User-agent與Referer,進行快照劫持。

排查思路:查看網(wǎng)站首頁引入了哪些文件,依次訪問相關(guān)的文件源碼,確認可疑的代碼,去除包含文件后恢復(fù)。備份網(wǎng)站源碼及文件完整性驗證非常重要,可以幫助我們在上萬行的代碼中快速找到惡意代碼。
03、nginx反向代理劫持
以前遇到過一個網(wǎng)站做了網(wǎng)頁防篡改,無法通過修改網(wǎng)站源碼劫持,攻擊者通過修改nginx的配置文件,通過正則匹配url鏈接,配置proxy_pass代理轉(zhuǎn)發(fā)實現(xiàn)url劫持。

排查思路:總結(jié)url劫持規(guī)律,中間件配置文件也是需要關(guān)注的位置。
04、利用301重定向劫持
通過HTTP重定向?qū)崿F(xiàn)301劫持。
<httpRedirect enabled="true" destination="http://www.xxxx.com/1.php" childOnly="true" httpResponseStatus="Permanent" />
排查思路:可以檢查網(wǎng)站根目錄下的配置文件web.config,確認是否有相關(guān)設(shè)置。
05、IIS惡意模塊劫持
這種手法相對比較隱蔽,網(wǎng)站目錄中查不到webshell和掛馬頁面,但使用特定的路徑、Referer或者UA訪問,頁面會加載暗鏈。
排查思路:排查加載的異常dll文件,如沒有簽名、創(chuàng)建時間不匹配需重點關(guān)注?墒褂没鸾q劍或Process Monitor等工具協(xié)助排查。