標籤:

DNS rebinding的實現原理是?


你是想要問dns rebinding attack的原理吧。

要理解這個攻擊,首先需要知道web安全中同源策略(Same Origin Policy)的概念. 簡單的說同源策略就是限制來至於不同源(一般通過主機,埠,協議來決定是否同源)的腳本或者應用的讀寫訪問許可權。可以說Web安全是構建在同源策略的基礎之上的,而我們通常用的瀏覽器只是針對這一策略做了對應的實現。舉個簡單的例子,從我們的電腦上打開瀏覽器去訪問www.baidu.com. 在baidu的web 伺服器上存放了許多的javascript腳本,如果假設這些腳本想做一些壞事情,比如去塗改http://www.google.com在我們電腦上的顯示頁面。由於瀏覽器里同源策略的存在,腳本的源來自www.baidu.com, 它是不允許去改http://www.google.com的頁面的。 當然瀏覽器中也有很多標籤 類似&&&等是不受同源策略控制的。基本上對於瀏覽器來說,DOM Cookie XMLHttpRequest是受同源策略控制的,還有第三方插件類似Flash, Java Applet等也是受同源策略控制的。

DNS Rebinding Attack就是去破壞同源策略的限制的。一般來說主要針對兩種情況:

1 繞開防火牆 攻擊者利用此攻擊可以從不安全的區域去訪問在防火牆保護的內部安全區域的資源。

舉例說明: 攻擊者想要訪問某公司內部的網站hr.corp.com. 該網站伺服器是在公司防火牆內部的,只允許公司內網訪問。 從外面直接是無法訪問該網站的,會被防火牆給攔截掉。

1)攻擊者首先去註冊了一個域名http://www.attacker.com,並且使得請求該域名的DNS Response中TTL欄位竟可能的小,比如1秒,目的就是請求該域名後 如果要再請求該域名的話就需要重新發起dns request而不是從本地的dns cache中去讀取,當第二次請求該域名時,給http://www.attacker.com綁定一個你想攻擊的防火牆內部伺服器的IP地址。這樣http://www.attacker.com其實就對應了兩個IP地址,一個是你真正存放攻擊腳本的伺服器地址,一個就是你想攻擊的伺服器的地址。這樣瀏覽器會認為這2個地址是來自同一個源的,從而你的攻擊腳本就可以任意的去訪問你想攻擊的伺服器了。

2)攻擊者首先誘導防火牆內部的某小白員工去訪問那個有害的網站whttp://ww.attacker.com,這樣在小白的電腦上會首先通過dns request去獲取http://www.attacker.com的IP地址,攻擊者在這個網站上寫了一些JS腳本,要求第二次請求http://www.attacker.com,根據1)中提到由於TTL很短,需要重新DNS request。 這次rebinding那個想攻擊的伺服器的IP給http://www.attacker.com,這樣小白的瀏覽器就會認為那些攻擊腳本和被攻擊的伺服器是來自一個源www.attacker.com. 這樣攻擊腳本就可以對伺服器為所欲為了。

當然如何在DNS response中rebinding第2個IP , 如何獲取到你想攻擊的伺服器的IP, 這個屬於其他範疇了,不在我們討論的攻擊方法之列。

2 IP劫持

(待續)


推薦閱讀:

nslookup命令 伺服器顯示unknown?
為什麼域名根伺服器只能有13台呢?
Mac下如何清除DNS緩存?
2017年有哪些好用的 DNS?
dns放大攻擊者是如何提高放大倍數的?

TAG:DNS |