首先向目标服务发送命令2
p = remote("49.232.142.230", 10320)
p.sendlineafter(b">>", b"2")
p.recvuntil(b"encrypted flag is: ")
enc_flag_hex = p.recvline().decode().strip()
print(enc_flag_hex)
获取对应的密文
b'a\xf2\xbd\r\xe2\x96m\xea\xfesi\xf5\x96$\xa3\xafE\xf3\xfe_B\xdb\x9c>\xe1\xaf|\xc1\xe3o`\xe7'
然后根据提示可知,flag的格式为shellmates{},则密文的前11位对应的明文为shellmates{,最后一位对应的明文为}。
则对应的key的值分别为b'\x12\x9a\xd8a\x8e\xfb\x0c\x9e\x9b\x00\x12'和b'\x9a'。由此得到key的长度为10,循环3次。key=b'\x12\x9a\xd8a\x8e\xfb\x0c\x9e\x9b\x00'。
调用功能2可以得到
The encrypted flag is: b'shellmates{oNE-TIme_PAD_oTp_xor}'