Skip to content

Instantly share code, notes, and snippets.

@minhtt159
Created July 29, 2018 10:12
Show Gist options
  • Save minhtt159/db5f083beb69c82e4011459cfb315df9 to your computer and use it in GitHub Desktop.
Save minhtt159/db5f083beb69c82e4011459cfb315df9 to your computer and use it in GitHub Desktop.
ISITDTU CTF - Baby
import os
import socket
import threading
from hashlib import *
import SocketServer
import random
from flag import flag
host, port = '0.0.0.0', 33337
BUFF_SIZE = 1024
class ThreadedTCPServer(SocketServer.ThreadingMixIn, SocketServer.TCPServer):
allow_reuse_address = True
class ThreadedTCPRequestHandler(SocketServer.BaseRequestHandler):
def hash(self, m):
f = int(flag.encode("hex"),16)
x = sha512(str(f | m )).digest().encode("hex")
self.request.sendall(x+"\n")
def check(self):
while True:
self.request.sendall("********************Hello World********************\n")
self.request.sendall("***************************************************\n")
self.request.sendall("Number: ")
try:
number = int(self.request.recv(BUFF_SIZE).strip())
except:
break
self.request.sendall(str(number)+"\n")
self.hash(number)
def handle(self):
self.request.settimeout(1)
self.check()
def main():
server = ThreadedTCPServer((host, port), ThreadedTCPRequestHandler)
server_thread = threading.Thread(target=server.serve_forever)
server_thread.daemon = True
server_thread.start()
print "Server loop running in thread:", server_thread.name
server_thread.join()
if __name__=='__main__':
main()
import socket
from Crypto.Util.number import *
host = '35.185.178.212'
port = 33337
soc = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
soc.connect((host,port))
soc.recv(1024)
flag = ''
while True:
payload = int('1'+flag,2)
soc.send(str(payload) + '\n')
soc.recv(1024)
hash1 = soc.recv(1024)
payload = int('0'+flag,2)
soc.send(str(payload) + '\n')
soc.recv(1024)
hash2 = soc.recv(1024)
if hash1 == hash2:
flag = '1' + flag
else:
flag = '0' + flag
if len(flag) % 8 == 0:
print long_to_bytes(int(flag,2))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment