Last active
October 25, 2017 08:11
-
-
Save rgerganov/a267580cbf5d67ccee0275df731b92cc to your computer and use it in GitHub Desktop.
Astra hack
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
import os | |
import socket | |
import threading | |
import SocketServer | |
class ThreadedTCPRequestHandler(SocketServer.BaseRequestHandler): | |
def send_response(self, resp): | |
self.request.sendall("HTTP/1.1 200 OK\r\n") | |
self.request.sendall("Date: Wed, 11 Oct 2017 13:52:19 GMT\r\n") | |
self.request.sendall("Content-Length: %d\r\n" % len(resp)) | |
self.request.sendall("Content-Type: text/plain; charset=utf-8\r\n\r\n") | |
self.request.sendall(resp) | |
def handle(self): | |
data = self.request.recv(1024) | |
if data.startswith("GET /license/check/a"): | |
print "request from: %s" % self.client_address[0] | |
print data | |
for k,v in self.server.responses.iteritems(): | |
if k in data: | |
self.send_response(v) | |
break | |
else: | |
self.request.close() | |
class ThreadedTCPServer(SocketServer.ThreadingMixIn, SocketServer.TCPServer): | |
def server_bind(self): | |
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) | |
self.socket.bind(self.server_address) | |
def load_responses(): | |
dir = os.path.dirname(os.path.realpath(__file__)) | |
fpath = os.path.join(dir, "response.txt") | |
with open(fpath, "r") as f: | |
content = f.readlines() | |
content = [x.strip() for x in content] | |
result = dict(zip(content[0::2], content[1::2])) | |
print("Loaded responses:") | |
for k,v in result.iteritems(): | |
print("%s -> %s" % (k, v)) | |
return result | |
if __name__ == '__main__': | |
print("Starting server on port 80") | |
server = ThreadedTCPServer(("0.0.0.0", 80), ThreadedTCPRequestHandler) | |
server.responses = load_responses() | |
server.serve_forever() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment