1

我想网上也有类似的问题和一些数据......但我想确保我正确掌握了这个概念,因为所有在线教程都太长了,而且专注于漏洞利用等。所以,我认为它是一个简单的缓冲区溢出的方式是这样的:

/////////////////////////////////////////

  1. 您发送一串参数/输入,如下所示:nop 指令(x90)+ shellcode + 一些文本 + 一些 nop 指令的地址。

  2. 如果字符串的长度正确,它将用一些 nop 指令的地址覆盖返回地址 ebp。一旦它跳到那里 - 然后它会跳过直到到达 shellcode ......剩下的就是历史了。

////////////////////////////////////////

我更像是一个 c++/php/c# 类型的人,而汇编和 c 超出了我的心理能力……哈哈……太认真了……或者开玩笑……上面的描述是不是有点意思?另外,据我所知,有一些针对缓冲区的保护措​​施。尽管我还不了解它们。防火墙将如何捕捉到这一点?

10倍!

4

3 回答 3

4

对于任何认真了解缓冲区溢出如何工作的人来说,为了乐趣和利润而粉碎堆栈必读的。你会发现没有比白皮书提供的更好的答案了。

编辑

如果您已经阅读了 Smashing the Stack并想更进一步,那么我建议您阅读Hacking: The Art of Exploitation 2nd Ed

黑客:剥削的艺术

于 2011-03-11T23:55:17.533 回答
1

是的,这是探索缓冲区溢出的一种方法。这本书是一本很棒的读物。

我不知道有任何防火墙能够监控其他应用程序上的缓冲区溢出(如果这就是你的意思)。

于 2011-03-12T00:02:59.543 回答
0

具体来说,您所描述的称为NOP 雪橇(或“滑道”或“坡道”)。 是一篇文章,提供了一个真实的蜜罐示例。

例如,您可以通过将读取的字符数限制为小于缓冲区大小来防止此类攻击。更一般地说,像Snort这样的网络入侵检测工具旨在广泛检测和预防,以防诸如缺少输入验证之类的事情碰巧被忽视。

于 2011-03-12T04:38:04.040 回答