什么!我用代理你还可以找到真实ip?
【推荐学习】暗月渗透测试培训 十多年渗透经验,体系化培训渗透测试 、高效学习渗透测试,欢迎添加微信好友aptimeok 咨询。
以为挂×××或者代理就安全了吗?
0x01 测试
打开实例测试地址:
https://www.hackjie.com/tracking
我们通过下图可以看到,代理/客户端请求的ip为42开头的代理ip,下方匿名真实ip追踪地址为:39开头,且39开头地址为用户的真实Ip地址
0x02 原理
WebRTC 信令
什么是信令
-
信令是配置、控制、以及结束用户间通信会话的过程。 -
端到端通信需要信令来建立。 -
两端想要通信,主要需要三个信令步骤: -
分享会话控制信息; -
交换IP地址和端口等网络信息; -
交换用户的编解码器以及媒体格式。
-
为什么通信需要信令
-
会话控制信息会控制端到端连接的所有建连、断连、以及发送信息。 -
IP 以及端口信息用于找到用户网络层位置。 -
编解码器以及多媒体格式用于确定用户间建立的分辨率以及多媒体设置。 -
这些所有的设置都根据 SDP 协议(Session Description Protocal)来进行交换。
STUN(Simple Traversal of UDP over NATs,NAT 的UDP简单穿越)是一种网络协议,它允许位于NAT(或多重NAT)后的客户端找出自己的公网地址,查出自己位于哪种类型的NAT之后以及NAT为某一 个本地端口所绑定的Internet端端口。这些信息被用来在两个同时处于NAT 路由器之后的主机之间建立UDP通信。该协议由RFC 3489定义。
Firefox 跟 Chrome支持WebRTC可以向STUN服务器请求,返回内外网IP,不同于XMLHttpRequest请求,STUN请求开发者工具当中看不到网络请求的Firefox 跟 Chrome支持WebRTC可以向STUN服务器请求,返回内外网IP,不同于XMLHttpRequest请求,STUN请求开发者工具当中看不到网络请求的!
0x03 js测试代码
感谢持续关注黑客街,将会有详细源码公布
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<script>
// turn 配置
const config = {
iceServers: [{
// urls: "stun:stun.l.google.com:19302" // 这里使用谷歌,线上部署直接替换
}]
};
// 构建
let pc = new RTCPeerConnection(config);
pc.onicecandidate = function(event) {
if(event.candidate)
handleCandidate(event.candidate.candidate);
}
function handleCandidate(candidate) {
if (candidate.indexOf("srflx") != -1) {
console.log(candidate)
var regex = /([0-9]{1,3}(.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/
var ip_addr = regex.exec(candidate)[0];
alert("Your public network ip: "+ ip_addr)
}
}
pc.createDataChannel("");
pc.createOffer(function(result){
pc.setLocalDescription(result);
}, function(){});
</script>
文章参考:
https://blog.csdn.net/qq_30359165/article/details/116022149
https://mp.weixin.qq.com/s/U2EQ90oIyrmmY2B2JshmJQ
https://www.yisu.com/zixun/56936.html
点击原文,进入实例测试页面
原创文章,作者:moonsec,如若转载,请注明出处:https://www.moonsec.com/6801.html