Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Node.js写的sslproxy捕获ssl明文数据

Node.js写的sslproxy捕获ssl明文数据:
  1. var net = require("net");  
  2.   
  3. var sslproxyhost="192.168.7.19";//被代理的服务的IP   
  4. var sslproxyport=5004;//被代理的端口   
  5. var ssllistenport=5004;//代理端口   
  6.   
  7. var tls = require("tls");  
  8. var fs = require("fs");  
  9.   
  10. var options = {  
  11.   key: fs.readFileSync("ryans-key.pem"),  
  12.   cert: fs.readFileSync("ryans-cert.pem"),  
  13. };  
  14.   
  15. var sslserver = tls.createServer(options, function(cleartextStream) {  
  16.     console.log("client connected",  
  17.               cleartextStream.authorized ? "authorized" : "unauthorized");  
  18.     console.log("client disconnected");  
  19.     //cleartextStream.setEncoding("ascii");   
  20.     cleartextStream.on("data", function(data) {  
  21.         console.log("client send:");  
  22.         console.log(data);    
  23.         console.log("" + data);  
  24.     });  
  25.     cleartextStream.on("end", function() {  
  26.         console.log("client disconnected");  
  27.       //server.close();   
  28.     });  
  29.     
  30.     var c_cleartextStream = tls.connect(sslproxyport,sslproxyhost, {}, function() {  
  31.       console.log("server connected",  
  32.                   c_cleartextStream.authorized ? "authorized" : "unauthorized");  
  33.     });  
  34.   
  35.     //c_cleartextStream.setEncoding("ascii");   
  36.     c_cleartextStream.on("data", function(data) {  
  37.         console.log("server recv:");  
  38.         console.log(data);  
  39.         buf = new Buffer(data.length);  
  40.         for (var i = 0; i < data.length ; i++) {  
  41.          // buf[i] = data.charCodeAt(i);   
  42.           buf[i]=data[i]&0x7f;  
  43.         }  
  44.         console.log("server recv2(cut even):");  
  45.         console.log(buf);  
  46.         console.log("" + buf);  
  47.     });  
  48.   
  49.     c_cleartextStream.on("end", function() {  
  50.         console.log("server disconnected");  
  51.         //sslserver.close();   
  52.     });  
  53.   
  54.     cleartextStream.pipe(c_cleartextStream);  
  55.     c_cleartextStream.pipe(cleartextStream);  
  56. //   
  57. });  
  58.   
  59. sslserver.listen(ssllistenport, function() {  
  60.   console.log("server bound");  
  61. });