今天要談一個基本但是新手在某些時刻,
會忽略,並且發生錯誤的地方,
有時候你以為是BUG,實際上可能是你的操作問題,
又或者說是你還沒搞懂背後的原理才會發生的事情。
大家可以看一下以下的場景,
假設我今天瀏覽自己靶機中DVWA的網站,
攔截了其中的一個請求,
請注意一個地方,這邊可是有寫著Request to http://192.168.240.178:80
接著我們把它send to Repeater,
在Repeater的右上角的地方呢,
其實也是有很清楚的寫著我們的目標的位置。
一定很多人都會注意到我的Request當中有個Host Header,
假設我今天測試DVWA測試膩了,我想改成測試google,
我直接把Request當中的Host Header修改成google.com,
你覺得我的請求會發送給誰呢?
請注意,因為右上角的設定目標仍然是http://192.168.240.178:80
所以我們還是會把請求丟給http://192.168.240.178:80
只不過傳過去的這個HTTP Request當中的Host Header被改成了google.com
所以我們到底傳給了甚麼網站,
重點是在於Target的設定,並非是Request當中的內容。
那我們現在假設把右上角修改成google.com,
再次發送請求,就可以發現我們真的是把請求丟給了google.com,
如果我們Follow redirection的話,則會被轉址到HTTPS的google.com,
也可以發現右上角的標的有改變了。
還有一點要注意的就是,如同標題所說的,
永遠要記得一件重要的事情,在網際網路上面,
只有IP是真實的(內網又是另一回事了XD),
所以我們雖然在目標輸入google.com,
實際上發送的目標一定也是透過DNS解析取得IP,
才把我們的封包丟向那個IP,
那如果今天我們在Burp -> Project options -> connections,
這邊的Hostname Resolution設定google.com的對應IP為DVWA那台靶機的IP,
我們回到Repeater的地方,雖然目標的地方真的是設定google.com,
可是我們發送的請求,仍然是會被發向我們的靶機。
在滲透測試的過程中,其實很常會遇到一些情況,
多個Hostname對應一個IP,或是一個Hostname對應多個IP,
不管是甚麼樣的情況,還是甚麼樣的技術,
要記得一件重要的事情,就是IP才是真實的,
你的封包丟向的是你的目標IP位置。
關於 Hostname, Host Header, IP 之間相關的各種技術與繞過手法,
真的要研究起來也是滿複雜的,自己也是還在努力學習當中~
本系列的文章為作者參與第 12 屆 iT 邦幫忙鐵人賽的文章修改
原文連結 https://ithelp.ithome.com.tw/users/20114110/ironman/3806