最近發現家里寬帶支持IPv6了,這里分享三個利用IPv6訪問本地地址(內網地址)的方法。
通常來說,我們用localhost來代表本地地址127.0.0.1
。其實在IPv6中有他自己的表示方法ip6-localhost
:
另外,大家應該都知道xip.io這個服務,可以將任何IP地址用域名的形式表示,用來測試SSRF漏洞比較方便。但xip.io只支持IPv4,IPv6下也有個類似的服務,ip6.name。
比如,我們可以通過x.1.ip6.name
訪問::1
,也就是本地:
再分享一個Windows下有趣的冷知識吧。
UNC Path是Windows中訪問共享資源的方法,前段時間代碼審計圈子里還分享過PHP利用UNC、WebDAV來包含遠程文件的方法:https://t.zsxq.com/fUjiMfY
而UNC Path是不支持冒號的,所以我們沒法在UNC Path中使用IPv6地址:\\[fe80::2]\share
。所以微軟官方想了一個歪招,他們注冊了一個域名ipv6-literal.net
,然后在Windows系統中,將IPv6地址中的冒號換成橫線作為ipv6-literal.net
子域名,如2408-8207-1850-2a60--4c8.ipv6-literal.net
。
通過這個域名即可訪問到對應的IPv6目標:
這就類似於微軟官方推出的一個ip6.name服務。
但是,有趣的是,這里和ip6.name、xip.io有一個很大的區別,我們訪問2408-8207-1850-2a60--4c8.ipv6-literal.net
的時候,系統是不會真正發送DNS請求的,這個域名仿佛內置在Windows操作系統中,與生俱來就存在。
所以,你會發現,其實ipv6-literal.net
這個域名微軟早就已經不續費了(現在的所有者是Godaddy),但我們仍然可以直接在瀏覽器里通過0--1.ipv6-literal.net
來訪問到::1
,也就是我本地:
所以在SSRF等漏洞的測試中,我們不妨利用一下上述三個URL技巧,嘗試繞過一些限制。
另外,SSRF測試中,即使目標沒有連入IPv6網絡,但本地系統、內網通常是支持IPv6的,所以不是說沒有IPv6外網IP的目標就不能用IPv6的技巧進行測試。
出處:https://www.tttang.com/archive/1293/