· 7 years ago · Dec 01, 2018, 06:22 AM
1import sys
2import socket
3import os
4from random import choice
5from string import ascii_uppercase
6import hashlib
7from Crypto.Cipher import AES
8import base64
9latin = "d3fe3951cf462aeaba9f172be419ebbb"
10base = "WkNQf6pgqMkXqxhydBlpttC5Bpmd95WRqwI2BAzeYEg="
11
12def inter(words):
13 if (words.split()[1] == "mihi"):
14 secret_key = latin[0:16]
15 cipher = AES.new(secret_key,AES.MODE_ECB)
16 decoded = cipher.decrypt(base64.b64decode(base))
17 return decoded
18 else:
19 return "Flag: "
20
21sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
22if os.geteuid()==0:
23 server_address = ('0.0.0.0', 1)
24 sock.bind(server_address)
25 sock.settimeout(5)
26 sock.listen(1)
27 while True:
28 try:
29 connection, client_address = sock.accept()
30 connection.setblocking(1)
31 try:
32 while True:
33 data = connection.recv(512)
34
35 if data:
36 m = hashlib.md5()
37 m.update(data[:-1])
38 if m.hexdigest() == latin:
39 connection.sendall(inter(data[:-1]))
40 else:
41 t = hashlib.md5()
42 t.update(''.join(choice(ascii_uppercase) for i in range(12)))
43 connection.sendall(t.hexdigest())
44 break
45
46 finally:
47 connection.close()
48
49 except socket.timeout:
50 break