52 lines
1.5 KiB
Python
52 lines
1.5 KiB
Python
import socket
|
|
|
|
# Updated connection details
|
|
HOST = "netsec.net.in.tum.de"
|
|
PORT = 20103
|
|
|
|
|
|
def get_flag():
|
|
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
|
|
s.connect((HOST, PORT))
|
|
sf = s.makefile("rw") # we use a file abstraction for the sockets
|
|
|
|
full_message = []
|
|
collecting = False
|
|
while True:
|
|
try:
|
|
message = sf.readline()
|
|
if not message:
|
|
break
|
|
|
|
message = message.rstrip("\n")
|
|
print(f"Server says: {message}")
|
|
|
|
if "team number" in message.lower():
|
|
sf.write("153\n")
|
|
sf.flush()
|
|
elif "In this challenge" in message:
|
|
collecting = True
|
|
full_message = [message]
|
|
elif collecting:
|
|
full_message.append(message)
|
|
if "solution" in message.lower():
|
|
answer = '[("192.168.0.126", "8.8.8.8", "udp", 53836, 53), ("192.168.0.126", "31.192.117.132", "tcp", 41160, 80), ("73.73.73.73", "192.168.0.20", "tcp", 38451, 23), ("192.168.0.126", "54.54.54.54", "tcp", 57020, 25)]'
|
|
sf.write(answer + "\n")
|
|
sf.flush()
|
|
collecting = False
|
|
full_message = []
|
|
|
|
except socket.timeout:
|
|
continue
|
|
except (EOFError, ConnectionError) as e:
|
|
print(f"Connection error: {e}")
|
|
break
|
|
|
|
sf.close()
|
|
s.close()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
get_flag()
|