读书人

nodejs写的sslproxy擒获ssl明文数据

发布时间: 2012-08-21 13:00:21 作者: rapoo

nodejs写的sslproxy捕获ssl明文数据

var net = require('net');var sslproxyhost="192.168.7.19";//被代理的服务的IPvar sslproxyport=5004;//被代理的端口var ssllistenport=5004;//代理端口var tls = require('tls');var fs = require('fs');var options = {  key: fs.readFileSync('ryans-key.pem'),  cert: fs.readFileSync('ryans-cert.pem'),};var sslserver = tls.createServer(options, function(cleartextStream) {console.log('client connected',  cleartextStream.authorized ? 'authorized' : 'unauthorized');console.log('client disconnected');//cleartextStream.setEncoding('ascii');cleartextStream.on('data', function(data) {console.log('client send:');console.log(data);console.log('' + data);});cleartextStream.on('end', function() {console.log('client disconnected');  //server.close();});  var c_cleartextStream = tls.connect(sslproxyport,sslproxyhost, {}, function() {  console.log('server connected',  c_cleartextStream.authorized ? 'authorized' : 'unauthorized');});//c_cleartextStream.setEncoding('ascii');c_cleartextStream.on('data', function(data) {console.log('server recv:');console.log(data);buf = new Buffer(data.length);for (var i = 0; i < data.length ; i++) { // buf[i] = data.charCodeAt(i);  buf[i]=data[i]&0x7f;}console.log("server recv2(cut even):");console.log(buf);console.log('' + buf);});c_cleartextStream.on('end', function() {console.log('server disconnected');//sslserver.close();});cleartextStream.pipe(c_cleartextStream);c_cleartextStream.pipe(cleartextStream);//});sslserver.listen(ssllistenport, function() {  console.log('server bound');});

读书人网 >JavaScript

热点推荐