主要考查點
Pwntools工具的基本使用方法
解題思路
1.nc 連線題目,得到提示:
根據題目,要求傳送一個100長度的字串,而且末尾需要為Syclover
b'A'*92 + b'Syclover'
2.傳送第一個請求後進入第二步
要求短時間內計算一個複雜算式,自己算是肯定不可能的,所以pwntools的recv來接收並完成計算然後傳送回去,所以就要把算式前面的幾行無關文字給接收掉,只儲存最後一行算式
點選檢視程式碼
io.recvuntil(b'first one\n')
que = io.recvline().decode().strip()
result = eval(que.split('=')[0].strip())
io.sendline(str(result))
exp
點選檢視程式碼
from pwn import *
io = remote('train.geesec.com',30893)
#context.log_level = 'debug'
payload = b'A'*92 + b'Syclover'
io.sendline(payload)
io.recvuntil(b'first one\n')
challenge = io.recvline().decode().strip()
print("Received challenge:", challenge)
result = eval(challenge.split('=')[0].strip())
io.sendline(str(result))
io.interactive()