DNS的創造是網絡大師的一大杰作,通過DNS廣大網民可以通過域名來訪問相應的網站。這樣只需要記住域名就可以了,不需要記住繁瑣的IP地址。如我們經常訪問的www.vants.org,其DNS解析過程如下:

上圖可以看到,DNS的解析非常輕巧,使用UDP 協議,一個DNS查詢包,一個響應包,兩個包搞定,簡潔輕巧,效率高。但是在實際過程中經常會遇到一個問題:輸入域名的時候如www.vants.org,一不小心多輸入一個w變成wwww.vants.org,這樣的話,可以正常解析嗎?我做了一下實驗,在瀏覽器輸入wwww.vants.org,瀏覽器直接報錯“無法訪問此網站”

我們來看看DNS的解析流程,客戶端進行了一次DNS查詢,DNS服務器查詢以后返回一個結果“NO such name A wwww.vants.org”,可以看到DNS服務器進行查詢后,查找不到這樣的結果。

為什么wwww.vants.org解析不到相應的IP?原因很簡單,DNS沒有相應的配置,但是在現實中,肯定經常存在用戶輸入錯誤域名前綴的情況,如果網站服務方考慮的足夠人性化,完全可以配置一個DNS解析記錄,配置一個默認解析結果。在DNS實現中,的確有這樣一套機制,這個稱作DNS泛解析。
既然有DNS泛解析這樣一套機制,在實際生活中肯定會存在相應的應用。那么我們來親測一下,首先拿google開刀,隨機輸入一個子域名看看能不能正常解析,解析不了;再測試一下度娘,也解析不了。

兩大寡頭都不支持泛解析,繼續找下小站,公司滲透大牛很不屑的扔給我一批開了泛解析的域名,隨便測試一個,可以解析到主站的IP上。

既然泛解析有這么人性化的應用,那么像google、度娘為什么不打開DNS泛解析?這肯定是考慮到安全與運維成本等方面。DNS泛解析還存在安全問題?的確存在!上圖中的泛解析是解析到主站的IP,如果泛解析的IP被解析到其他的IP,或者是黑客的IP呢?
有這種情況?的確,在實際工作中多次遇到這種情況。前天發現一政府的門戶網站通過度娘搜索子域名時,搜索到301000個站點,通過搜索的結果直接點擊進入,發現有很多子域名都跳轉到博彩網站。


通過ping測試,發現主站解析到61.191.*.*,而泛解析卻被解析到23.105.65.113,這個IP是美國的IP。DNS的泛解析結果肯定被黑客惡意修改了。



既然被DNS被泛解析到惡意的IP,并且有這么多解析記錄,那么用戶為什么一直沒有發現這個問題?這令我百思不得其解。直到有一次在瀏覽器中輸入一個隨機子域名訪問時,竟然跳轉到正常主站頁面上去了。既然可以根據用戶的訪問條件(通過搜索或直接輸入)在博彩與正常主站之間跳轉,那么在23.105.65.113這個頁面肯定存在一個判斷的條件,觸發這些條件時跳轉到博彩網站,沒有觸發時跳轉到正常頁面。一般情況下,都是通過JS來做識別和跳轉的,這樣只要過濾相應的JS腳本即可,直接分析23.105.65.113頁面源碼,過濾src= 果然找到相應的JS腳本。


看一下這個js內容,判斷條件很簡單,http的包頭referrer字段,只要referrer字段中有c或者n就跳轉到win.an888.top,否則就跳轉到www.*.gov.cn。這樣的話就解釋了直接打開隨機子域名跳轉到正常頁面而通過百度搜索時跳轉到博彩頁面的疑問。如果通過直接訪問隨機子域名會跳轉到主站頁面,不容易被管理人員發現,但是通過搜索訪問時會有referrer字段,只要字段中有c或者n就會跳轉到博彩網站。
|