拿到程序依旧老样子checksec和file一下
![](https://www.icode9.com/i/l/?n=20&i=blog/2470598/202107/2470598-20210722135126382-468026674.png)
可以看到是32位的程序开启了nx保护,将程序放入ida进行查看
shift+f12
![](https://www.icode9.com/i/l/?n=20&i=blog/2470598/202107/2470598-20210722135234282-632732533.png)
看到没有system和binsh等字样,考虑用泄露libc来做这道题
进入主函数跳转到这个页面,发现read存在明显的栈溢出
![](https://www.icode9.com/i/l/?n=20&i=blog/2470598/202107/2470598-20210722135423861-1194143978.png)
所以我们用泄露write来做这道题,
完整exp如下
![](https://www.icode9.com/i/l/?n=20&i=blog/2470598/202107/2470598-20210722135532210-1255151392.png)
因为需要程序继续运行,所以我们将返回地址设置为main的地址
![](https://www.icode9.com/i/l/?n=20&i=blog/2470598/202107/2470598-20210722135639126-1466204019.png)
成功获取到flag
结束
标签:程序,地址,这道题,2018,跳转,rop,铁人三项,泄露
来源: https://www.cnblogs.com/zhuangzhouQAQ/p/15043751.html