Files
netsec/week03/easy/client_ans.py
2024-11-21 16:37:48 +09:00

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()