了解堆栈溢出攻击的原因

时间:2015-03-28 22:33:40

标签: security stack-overflow

深入了解漏洞的原因,例如堆栈缓冲区溢出,我有很多问题,我觉得很难回答:

  1. 也许是一个愚蠢的问题,但是,为什么在操作系统中,如Windows,堆栈上的缓冲区记录发生在已记录信息的方向: http://s27.postimg.org/udizo3itf/Stack_Overflow_2.png而不是那样:http://s18.postimg.org/q6kje5up5/Stack_Overflow_22.png 然后,如果分配的内存不足以包含缓冲区,程序就会崩溃(尝试吸引未分配的内存),并且函数的返回地址不会覆盖。

  2. 只有当目标程序在系统中拥有高权限时,堆栈溢出攻击是否有意义?例如,此漏洞如何帮助攻击者创建后门?如果堆栈溢出攻击需要注入shellcode,那么这意味着攻击者已经获得系统控制并可以执行他想要的任何操作(堆栈溢出攻击是不必要的),或者这意味着用户必须执行攻击者所需的操作(在这种情况下,攻击者可以说服用户运行一个可执行文件来完成他所需要的一切 - 不需要堆栈溢出攻击。

  3. 请说明我的推理错误。

1 个答案:

答案 0 :(得分:0)

以下是我的答案:

  
      
  1. 初始架构可能是在没有缓冲区溢出攻击保护的情况下构建的。当然,较新的版本会针对已知的攻击升级保护模块。
  2.   
  3. 无论用户权限级别如何,缓冲区溢出攻击都是有意义的,并且只是获取某些漏洞利用代码的不同方法之一。如果使用缓冲区溢出攻击且仅获得非root访问权限,则需要另一个权限升级移动才能获得root访问权限。
  4.