[分享创造] 你在 ping0 查代理 IP 时,它把你的真实 IP 也一起记走了——抓包实锤

最近看到有人说 ping0.cc (很多人用来查 IP 纯净度/风控值的工具)在偷偷收集用户真实 IP 。我不喜欢人云亦云,直接打开浏览器 F12 抓了一遍包、扒了它的前端 JS ,我擦,居然实锤了。下面每一条你都能自己复现。 手法一:WebRTC 抓真实 IP ,再 POST 回服务器 打开 pi...
[分享创造] 你在 ping0 查代理 IP 时,它把你的真实 IP 也一起记走了——抓包实锤
[分享创造] 你在 ping0 查代理 IP 时,它把你的真实 IP 也一起记走了——抓包实锤
ping0.cc (很多人用来查 IP 纯净度/风控值的工具)在偷偷收集用户真实 IP 。我不喜欢人云亦云,直接打开浏览器 F12 抓了一遍包、扒了它的前端 JS ,我擦,居然实锤了。下面每一条你都能自己复现。

手法一:WebRTC 抓真实 IP ,再 POST 回服务器

打开 ping0 时,它的 check.js 里有个 peer()函数(代码混淆过,但逻辑很清楚):

- 新建 RTCPeerConnection ,配上 STUN 服务器;
- 监听 ICE candidate ,从候选串里把 IP 抠出来;
- 然后 axios.post(/ip/peer, { ip: 你的真实 IP }),发回 ping0 自己的服务器。

WebRTC 这个 IP 能绕过你的代理/VPN——这正是它"危险"的地方。你以为在用代理 IP 查询,它却从 WebRTC 拿到了你代理背后的真实地址,还发回了服务器。

抓包里你会看到一个 POST https://ping0.cc/ip/peer

手法二:双栈( IPv4 + IPv6 )交叉强制抓取

ping0 的页面同时从两个子域名加载脚本:

https://ipv4.ping0.cc/geo/jsonp/ipv4cb
https://ipv6.ping0.cc/geo/jsonp/ipv6cb

ipv4.ping0.cc 只解析 A 记录、ipv6.ping0.cc 只解析 AAAA 记录——这样强制你的浏览器分别走 IPv4 和 IPv6 各连一次。哪怕你只用 IPv6 上网,它也能把你的 IPv4 钓出来(反之亦然)。双栈用户的两个地址,一个都跑不掉。

手法三:把你的 IPv4 和 IPv6 配对,记到服务器(最致命)

这是压死骆驼的一根稻草。ping0 的 JS 原文(去混淆后):

js
axios({ method: 'get', url: '/logv6/' + window.ipv6 + '/' + ip })


也就是说,它会发一个:

GET https://ping0.cc/logv6/{你的 IPv6}/{你的 IPv4}

把你的 IPv6 和 IPv4 配成一对、记到 ping0 的服务器上。这已经不是"检测"了,这是建立你真实身份的关联档案。我实测时这个请求确确实实发出去了,URL 里就明晃晃挂着我这台机器的两个真实地址。

复现步骤( 30 秒,你自己验)

1. 浏览器打开 https://ping0.cc ,按 F12 → Network (网络)面板;
2. 刷新页面;
3. 在请求列表里搜 peer 、logv6 、ipv4.ping0 ,三个都在;
4. 点开 logv6/...那条,URL 里就是你的 IPv6/IPv4 配对。

这意味着什么

- 你拿 ping0 测一个代理/VPS 的 IP 时,它可能顺手把你本机的真实 IP 也抓走、还把你的 v4/v6 关联起来记档;
- 对在意匿名性、做跨境/多账号/科学上网的人,这是实打实的去匿名风险。

### 怎么保护自己

- 浏览器禁用 WebRTC ( Firefox 改 media.peerconnection.enabled=false ,Chrome 装 WebRTC 控制类插件);
- 或者,换一个不这么干的网站。
来源: v2ex查看原文