IPv6 三个访问本地地址的小Tips

2023-10-28 18:44:13 浏览数 (3)

最近发现家里宽带支持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的技巧进行测试。

0 人点赞