from pwn import * # type: ignore import re from Crypto.Util.number import * # type: ignore from Crypto.Cipher import AES from Crypto.Util.Padding import pad,unpad context.log_level = 'debug' conn = remote("localhost",10001) def encrypt(plain_text:bytes, key:bytes)->bytes: cipher = AES.new(key, AES.MODE_ECB) cipher_text = cipher.encrypt(pad(plain_text, AES.block_size)) return cipher_text def decrypt(encrypt_text:bytes, key:bytes)->bytes: cipher = AES.new(key, AES.MODE_ECB) plain_text = unpad(cipher.decrypt(encrypt_text), AES.block_size) return plain_text conn.recvline() cipher = conn.recvuntil(b"\x0a\x5b\x2b\x5d")[:-4] # \n[+] p = 327824197795087630552811243153730025469 g = 5 alice = 22751 bob = 39494 Bob = pow(g, bob, p) key = long_to_bytes(pow(Bob, alice, p)) conn.send(decrypt(cipher, key)) conn.recvline() conn.send(encrypt(b"HackedBy0xfa", key)) conn.recvall() conn.close()