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

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

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

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

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

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


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



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


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