免责声明
本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。
只供对已授权的目标使用测试,对未授权目标的测试作者不承担责任,均由使用本人自行承担。
文章正文
通过WEBRTC结合stun服务器实现获取真实主机IP
测试:
真实IP:
挂代理之后的ip
保存以下代码到本地:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<h3>你的代理IP是:<div id=1></div></h3>
<h3>你的真实IP是:<div id=2></div></h3>
<script>
// turn 配置
const config = {
iceServers: [{
urls: "stun:stun.l.google.com:19302" // stun.voippro.com stun.voipraider.com 这里使用谷歌,线上部署直接替换
}]
};
// 构建
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)
document.getElementById('2').innerHTML = ip_addr;
}
}
pc.createDataChannel("");
pc.createOffer(function(result){
pc.setLocalDescription(result);
}, function(){});
</script>
<script src='http://pv.sohu.com/cityjson?ie=utf-8'></script>
<script>
var ip=returnCitySN["cip"];
//var city=returnCitySN["cname"];
document.getElementById('1').innerHTML = ip;
</script>
</body>
</html>
在挂代理的条件下,访问,即可获得 代理后面的真实IP:
具体WEBRTC、STUN的原理,感兴趣的自行google
技术交流
交流群
关注公众号回复“加群”,添加Z2OBot 小K自动拉你加入Z2O安全攻防交流群分享更多好东西。
知识星球
星球不定时更新最新漏洞复现,手把手教你,同时不定时更新POC、内外网渗透测试骚操作。涉及方向包括Web渗透、免杀绕过、内网攻防、代码审计、应急响应、云安全等
关注我们
关注福利:
回复“app" 获取 app渗透和app抓包教程
回复“渗透字典" 获取 针对一些字典重新划分处理,收集了几个密码管理字典生成器用来扩展更多字典的仓库。
回复“书籍" 获取 网络安全相关经典书籍电子版pdf
往期文章:
CVE-2022-30190 Follina Office RCE分析【附自定义word模板POC】