web網頁劫持是如何做的?
按照劫持的方法不同,我將劫持分為下面兩類:
為了獲取流量,一些電商或者類似百度這樣需要流量合作的網站都會有自己的聯盟系統,通過給予一些獎勵來獲取導流,比如:百度或者電商會有渠道分成。
為了區分哪些是第三方給予導流過來的,通常會在url地址增加類似source、from之類的參數,或者進入頁面之前通過「中間頁」種cookie。
這樣,當用戶輸入一個正常網址的時候,劫持方會在網絡層讓其跳轉到帶分成或者渠道號的「中間頁」或者帶渠道號的頁面。這樣用戶進行下單或者搜索等行為,劫持方會得到「傭金」。
上面說的這類case還算友好,至少用戶一般體驗不到頁面變化,還有類似跳轉到釣魚網站的case,也有不正當競爭的case:用戶輸入baidu.com跳轉到so.com或者sm.cn,而對方網站有故意做成和百度搜索差不多的樣子,那時候也幫助法務做了很多案例收集。
題外話:前些年,用戶使用百度搜索某些醫療類query,立即用戶就會收到電話推廣醫院,很多用戶投訴,不明真相的群眾也指責百度,實際這類是運營商把url的關鍵詞賣給了醫療機構,百度只不過是躺槍。。。那時候還做了個項目是加密query。。。
頁面在傳輸的過程中,被網絡層進行內容「再加工」,常見有:注入js、iframe、篡改頁面。
注入js的方式可以通過document.write或者直接改html代碼片段等方式,給頁面增加外鏈js,為了做到更難檢測,有些運營商會捏造一個不存在的url地址,從而不被過濾或者檢測。
document.write
案例1:運營商會用自己識別的ip或者域名做js網址,wap.zjtoolbar.10086.cn這類只有在浙江移動網絡下才會被解析出來,同理ip也是
案例2:運營商很聰明,知道頁面可以檢測所有外鏈js的域名,比如:m.baidu.com我只允許m.baidu.com/static的外鏈js,其他js都會被記錄反饋;為了不被檢測出來,我遇見個case電信會訪問一個不存在的地址,比如:m.baidu.com/static/abc.js,這個地址在運營商直接返回劫持的js代碼,請求不會發到百度的服務器。
這類case比較少見,但是一些擦邊球的網站或者沒有內容的垃圾站會用這種方式,他們一般是通過熱門關鍵詞之類做SEO,打開網站實際去了廣告之類沒有任何實際內容,而頁面卻是內嵌了一個其他網站,我們要是識別出來不被內嵌就需要檢測。
這類case很少見,一般是在頁面底部增加js之外的div,然后展現一些非網站內容。
回答所涉及的環境:聯想天逸510S、Windows 10。
按照劫持的方法不同,我將劫持分為下面兩類:
跳轉型劫持
為了獲取流量,一些電商或者類似百度這樣需要流量合作的網站都會有自己的聯盟系統,通過給予一些獎勵來獲取導流,比如:百度或者電商會有渠道分成。
為了區分哪些是第三方給予導流過來的,通常會在url地址增加類似source、from之類的參數,或者進入頁面之前通過「中間頁」種cookie。
這樣,當用戶輸入一個正常網址的時候,劫持方會在網絡層讓其跳轉到帶分成或者渠道號的「中間頁」或者帶渠道號的頁面。這樣用戶進行下單或者搜索等行為,劫持方會得到「傭金」。
上面說的這類case還算友好,至少用戶一般體驗不到頁面變化,還有類似跳轉到釣魚網站的case,也有不正當競爭的case:用戶輸入baidu.com跳轉到so.com或者sm.cn,而對方網站有故意做成和百度搜索差不多的樣子,那時候也幫助法務做了很多案例收集。
題外話:前些年,用戶使用百度搜索某些醫療類query,立即用戶就會收到電話推廣醫院,很多用戶投訴,不明真相的群眾也指責百度,實際這類是運營商把url的關鍵詞賣給了醫療機構,百度只不過是躺槍。。。那時候還做了個項目是加密query。。。
注入型劫持
頁面在傳輸的過程中,被網絡層進行內容「再加工」,常見有:注入js、iframe、篡改頁面。
注入js
注入js的方式可以通過
document.write或者直接改html代碼片段等方式,給頁面增加外鏈js,為了做到更難檢測,有些運營商會捏造一個不存在的url地址,從而不被過濾或者檢測。案例1:運營商會用自己識別的ip或者域名做js網址,wap.zjtoolbar.10086.cn這類只有在浙江移動網絡下才會被解析出來,同理ip也是
案例2:運營商很聰明,知道頁面可以檢測所有外鏈js的域名,比如:m.baidu.com我只允許m.baidu.com/static的外鏈js,其他js都會被記錄反饋;為了不被檢測出來,我遇見個case電信會訪問一個不存在的地址,比如:m.baidu.com/static/abc.js,這個地址在運營商直接返回劫持的js代碼,請求不會發到百度的服務器。
被放入iframe或者iframe其他頁面
這類case比較少見,但是一些擦邊球的網站或者沒有內容的垃圾站會用這種方式,他們一般是通過熱門關鍵詞之類做SEO,打開網站實際去了廣告之類沒有任何實際內容,而頁面卻是內嵌了一個其他網站,我們要是識別出來不被內嵌就需要檢測。
篡改頁面內容
這類case很少見,一般是在頁面底部增加js之外的div,然后展現一些非網站內容。
回答所涉及的環境:聯想天逸510S、Windows 10。