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

查看 69|回复 6
作者:hnlszcl611   
最近看到有人说 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 控制类插件);
- 或者,换一个不这么干的网站。

匿名, IP, 追踪

TataJiang   
多谢提醒,已使用 WebRTC 插件。
tyqing   
ping0 有前科的,自建的梯子,记录真实 IP ,越查越脏。
之前在 nodeseek 看过一个聊天截图,可以在后台改 IP 纯净度。
hnlszcl611
OP
  
@TataJiang
@TataJiang 禁 WebRTC 能挡第 1 招。不过提醒下:第 2 招双栈( ipv4./ipv6. 子域)不靠 WebRTC ,光禁 WebRTC 挡不住它把你 IPv4/IPv6 配对记到/logv6/,想彻底防得连 IPv6 一起管。
keer   
自荐一下:ip.nc.gy
风控库和代码都是开源的。https://github.com/NetworkCats/Merged-IP-Data
409164   
之前就听群里说过,这次楼主给拿证据证实了
hnlszcl611
OP
  
webrtc 都关了
您需要登录后才可以回帖 登录 | 立即注册

返回顶部