铁人三项(第五赛区)_2018_rop

拿到程序依旧老样子checksec和file一下

铁人三项(第五赛区)_2018_rop

 

可以看到是32位的程序开启了nx保护,将程序放入ida进行查看

shift+f12

 

 

铁人三项(第五赛区)_2018_rop

 

 看到没有system和binsh等字样,考虑用泄露libc来做这道题

进入主函数跳转到这个页面,发现read存在明显的栈溢出

 

铁人三项(第五赛区)_2018_rop

 

 所以我们用泄露write来做这道题,

完整exp如下

铁人三项(第五赛区)_2018_rop

 

 因为需要程序继续运行,所以我们将返回地址设置为main的地址

铁人三项(第五赛区)_2018_rop

 

 成功获取到flag

结束

上一篇:构建ROP链实现远程栈溢出


下一篇:arc108E - Random IS