1

我正在从进攻安全.com 参加带有 Backtrack 的渗透测试课程,并且正在研究 Ability Server 的缓冲区溢出漏洞利用。我可以成功重写 EIP 并跳转到我的 shellcode。但是,当我开始在调试器中检查 shellcode 时,它​​会从 shellcode 中中断。我几乎 100% 确定我已经消除了坏字符。我什至在发送它之后将它发送到调试器中的 shellcode 之前比较了 shellcode,它们是相同的。

我很抱歉不得不通过 imgur 相册发布图片。由于我是 stackoverflow.com 的新手,因此在我获得一些街头信誉之前,他们不会允许我发布图片。

图片在缓冲区溢出相册中。(唯一专辑) http://edwardmcfellon.imgur.com/

{图 1}在这里,我在 EIP 设置了一个断点。到目前为止一切都很好。

{图 2}我让程序继续,它跳转到我的 shell 代码。一切都还好。

{图 3}当程序执行 POP EBX 时,我的 shellcode 中断,这是我的问题。

{图 4}这是它在破裂后结束的地方。

任何帮助,将不胜感激。仅供参考,我对编写缓冲区溢出非常陌生,我希望了解为什么会发生这种情况以及将来如何防止它。提前致谢。

4

2 回答 2

0

确保包含 NOP 幻灯片。它增加了你的漏洞利用的稳定性

于 2013-01-11T18:21:54.100 回答
0

可能 ESP 指向堆栈外,因此 POP EBX 指令最终会尝试从无效内存中读取。

于 2013-01-13T16:01:16.883 回答