from pwn import * import binascii p = remote("a96a15c9c5222abacb014e80-1024-intro-crypto-1.challenge.cscg.live", 1337, ssl=True)# Define functions for convenience def recv_until(delim): return p.recvuntil(delim) def interact(): p.interactive() def send_payload(payload): p.sendline(payload) def xor(bytes1, bytes2): return bytes([b1 ^ b2 for b1, b2 in zip(bytes1, bytes2)]) # Example interaction recv_until(b":") payload = b"41" * 74 send_payload(payload) encrypted_plaintext = [] for _ in range(255): data = binascii.unhexlify(recv_until(b"\n").replace(b"\n",b"").split(b" ")[-1]) encrypted_plaintext.append(data) payload = b"\x41" * 74 print(payload) keystreams = [xor(enc, payload) for enc in encrypted_plaintext] enc_flag = binascii.unhexlify(recv_until(b"\n").replace(b"\n",b"").split(b" ")[-1]) print(enc_flag) dec_flags = [xor(keystream, enc_flag) for keystream in keystreams] for flag in dec_flags: if b'CSCG{' in flag: print(flag)