CTFWiki 栈溢出 ret2text
目录
1.checksec跑一下

- NX enable :栈不可执行
- 对于这个题目来说执不执行都无所谓
2.IDA pro看一下
2.1. 计算s相对ebp的偏移量
2.1.1. 手动计算

- 看到一个危险函数 gets()
- 看到[esp + 1ch] [ebp - 64h]
- 这个时候我们要算一下需要发送多少数据才能覆盖栈
- 这两个方括号里面代表的是 s 分别到 esp 和 ebp 的距离
- 我们想要的得到的是ebp - s 的值
- 因此我们要算出 s 的地址
- s的地址就应该是esp+1c
这里附上图看看

- ebp指向栈底 是高地址
- esp指向栈顶 是低地址
- s距离esp的偏移是0x1c
- 下面看看gdb动态调试
- 在学习gdb的时候遇到的诸多问题请看我写的另一篇文章

本文详细介绍了如何通过检查栈特性、IDA Pro分析、gdb调试来计算栈溢出时ret2text的攻击路径。涉及步骤包括检查NX保护、计算s相对于ebp的偏移、定位system函数地址,并利用gdb获取覆盖数据大小,最终编写并执行exploit。
最低0.47元/天 解锁文章
759

被折叠的 条评论
为什么被折叠?



