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

本文分享了三种利用IPv6访问本地地址的方法,包括使用ip6-localhost、ip6.name服务及Windows下的ipv6-literal.net域名技巧。这些方法不仅丰富了IPv6的使用场景,也为SSRF漏洞测试提供了新的思路。

最近发现家里宽带支持IPv6了,这里分享三个利用IPv6访问本地地址(内网地址)的方法。

通常来说,我们用localhost来代表本地地址127.0.0.1。其实在IPv6中有他自己的表示方法ip6-localhost

1558722779473.png

另外,大家应该都知道xip.io这个服务,可以将任何IP地址用域名的形式表示,用来测试SSRF漏洞比较方便。但xip.io只支持IPv4,IPv6下也有个类似的服务,ip6.name。

比如,我们可以通过x.1.ip6.name访问::1,也就是本地:

1558723164108.png

再分享一个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目标:

1558725001686.png

这就类似于微软官方推出的一个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,也就是我本地:

1558725256789.png

所以在SSRF等漏洞的测试中,我们不妨利用一下上述三个URL技巧,尝试绕过一些限制。

另外,SSRF测试中,即使目标没有连入IPv6网络,但本地系统、内网通常是支持IPv6的,所以不是说没有IPv6外网IP的目标就不能用IPv6的技巧进行测试。

 

出处:https://www.tttang.com/archive/1293/ 

 

 

转载于:https://www.cnblogs.com/mrhonest/p/10945249.html

<think>嗯,用户想了解IPv6地址以及如何连接本地IPv6地址。首先,我需要回忆IPv6的基本概念。IPv6是下一代IP协议,主要解决IPv4地址耗尽的问题。它的地址长度是128位,比IPv4的32位长很多,所以能提供更多的地址空间。格式上,IPv6通常用八组十六进制数表示,比如2001:0db8:85a3:0000:0000:8a2e:0370:7334,为了简化,可以省略前导零和连续零组,用双冒号代替。 接下来是地址类型。IPv6有单播、组播和任播三种。单播里又分全局单播地址(类似公网IP)、唯一本地地址(类似私有IP)和链路本地地址。链路本地地址特别重要,因为每个启用IPv6的设备接口都会自动生成一个,以fe80开头,用于同一链路上的通信,不需要路由器。 用户还问到如何连接本地IPv6地址。这里需要分步骤说明。首先,确认系统是否支持IPv6。在Windows上可以用ipconfig,Linux用ifconfig或ip addr show,检查是否有fe80开头的地址。然后,确保服务监听IPv6,比如MySQL配置bind-address为::或::1。创建账户时,用户名部分要指定客户端的IPv6地址,比如'user'@'::1'。连接时,客户端用-h ::1指定目标地址。 可能用户遇到的问题包括防火墙阻挡或服务未正确配置监听IPv6。比如,如果MySQL只绑定了IPv4,即使系统有IPv6地址也无法连接。另外,链路本地地址需要附带作用域ID,如fe80::1%eth0,否则系统无法确定具体接口。 用户提供的引用内容里,[1]提到获取IPv6地址的方法,比如通过网卡信息或发送数据包,但ioctl可能不适用,建议其他方法。[2]说明了IPv6地址类型,特别是链路本地地址fe80::/10的自动生成机制。[3]则详细展示了MySQL配置IPv6连接的步骤,包括绑定地址和创建账户。这些需要整合到回答中,确保覆盖地址结构和连接方法。 最后,生成相关问题时要围绕IPv6地址类型、配置服务和常见连接问题展开,帮助用户深入理解。比如询问链路本地地址的特殊性,或配置服务时绑定地址的不同选项含义。需要确保回答清晰,步骤准确,避免技术陷阱,比如作用域ID的必要性。</think>### IPv6地址详解 **IPv6**(Internet Protocol version 6)是下一代互联网协议,用于替代IPv4。其核心特点包括: 1. **128位地址长度**:提供约$3.4 \times 10^{38}$个地址,彻底解决IPv4地址枯竭问题。 2. **地址格式**:8组4位十六进制数,用冒号分隔(如`2001:0db8:85a3:0000:0000:8a2e:0370:7334`),可简写(省略前导零、连续零组用`::`替代)。 3. **地址类型**: - **全局单播地址**(公网地址,前缀`2000::/3`) - **唯一本地地址**(类似IPv4私有地址,前缀`fc00::/7`) - **链路本地地址**(**关键!** 以`fe80::/10`开头,每个接口自动生成,用于本地网络通信)[^2]。 --- ### 连接本地IPv6地址的步骤 #### 1. **确认本地IPv6地址** - **Windows**:命令行输入 `ipconfig`,查找以`fe80::`开头的地址。 - **Linux/macOS**:终端输入 `ifconfig` 或 `ip addr show`,查找`inet6 fe80::`。 > 示例:`fe80::1%eth0`(`%eth0`表示作用域,标识网卡)[^2]。 #### 2. **服务端配置(以MySQL为例)** - **修改服务配置**:确保服务绑定到IPv6地址(如MySQL的`bind-address = ::`允许IPv4/IPv6双栈): ```ini [mysqld] bind-address = :: # 或指定为::1(仅IPv6本地) ``` - **创建访问账户**: ```sql CREATE USER 'user'@'::1' IDENTIFIED BY 'password'; ``` > 账户名中的`::1`表示仅允许从本地IPv6地址连接[^3]。 #### 3. **客户端连接** - 使用支持IPv6的工具(如`mysql`客户端): ```bash mysql -h ::1 -u user -ppassword # 直接连接本地IPv6地址 ``` - **注意**:若使用链路本地地址(如`fe80::a00:27ff:fe...`),需附加作用域ID(如`fe80::1%eth0`)。 #### 4. **验证连接** - 在服务端检查活动连接(如MySQL的`SHOW PROCESSLIST;`)。 - 客户端执行网络测试: ```bash ping6 fe80::1%eth0 # Linux/macOS ping -6 fe80::1%eth0 # Windows ``` --- ### 常见问题与解决 | 问题现象 | 可能原因 | 解决方案 | |------------------------|---------------------------|------------------------------| | 连接超时 | 防火墙未放行IPv6流量 | 开放端口(如`ufw allow 3306/tcp`) | | "Address not available"| 未指定作用域ID(%eth0) | 客户端命令中补充作用域ID | | 服务无法绑定IPv6 | 系统/IP栈未启用IPv6 | 检查`sysctl net.ipv6.conf.all.disable_ipv6=0` | --- ### 相关问题 1. **链路本地地址(fe80::)为什么需要作用域ID?** > 答:同一设备可能有多张网卡,作用域ID(如`%eth0`)明确指定通信接口,避免地址歧义[^2]。 2. **如何让服务同时监听IPv4和IPv6?** > 答:配置服务绑定到`::`(双栈模式),例如Nginx的`listen [::]:80;`。 3. **IPv6地址中的`::1`有何特殊含义?** > 答:`::1`是IPv6的环回地址(等价于IPv4的`127.0.0.1`),仅用于本机内部通信。 4. **全局单播地址和唯一本地地址的应用场景有何区别?** > 答:全局地址用于互联网通信;唯一本地地址(`fc00::/7`)用于私有网络,不可路由到公网,类似IPv4的`10.0.0.0/8`。 > 引用说明: > [^1]: IPv6地址获取方法及技术限制。 > [^2]: IPv6地址分类及链路本地地址特性。 > [^3]: 服务端配置IPv6连接的实践示例(MySQL场景)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值