Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- import socket
- import threading
- import time
- import SocketServer
- from base64 import *
- host, port = 'localhost', 33338
- buffer = 4096
- flag = "zStep1k_st3p1k!!"
- class ThreadedTCPServer(SocketServer.ThreadingMixIn, SocketServer.TCPServer):
- allow_reuse_address = True
- class ThreadedTCPRequestHandler(SocketServer.BaseRequestHandler):
- def handle(self):
- def xor(mess,key):
- cipher = ''
- for i,j in zip(mess,key):
- cipher+= chr(ord(i)^ord(j))
- return cipher
- key = 'OMG_YOU_BREAK_IT'
- mess = self.request.recv(buffer).strip()
- if len(mess) > 16:
- self.request.sendall("Oops, too l0ng!!\n")
- self.request.close()
- elif len(mess) < 16:
- self.request.sendall("Opps, too sh0rt!!\n")
- self.request.close()
- else:
- file = open('RGB.png','r').read()
- temp = open('tmp','w').write(xor(mess,key)).encode('hex'))
- os.system("stepic -e -i RGB.png -t tmp -o fake.png")
- fl = open('fake.png').read()
- self.request.sendall(b64encode(fl))
- os.system('rm -rf fake.png | rm -rf tmp')
- self.request.close()
- while True:
- server = ThreadedTCPServer((host, port), ThreadedTCPRequestHandler)
- # Start a thread with the server -- that thread will then start one
- # more thread for each request
- server_thread = threading.Thread(target=server.serve_forever)
- # Exit the server thread when the main thread terminates
- server_thread.daemon = True
- server_thread.start()
- print "Server loop running in thread:", server_thread.name
- server_thread.join()
Add Comment
Please, Sign In to add comment