作者: @周佩雨,就職於長亭科技

最近發現家裡寬頻支持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來包含遠程文件的方法: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的技巧進行測試。


推薦閱讀:
相关文章