【问题标题】:Understanding the causes of the stack overflow attack了解堆栈溢出攻击的原因
【发布时间】:2015-06-02 02:55:12
【问题描述】:

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

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

  2. 堆栈溢出攻击是否只有在目标程序在系统中具有高权限时才有意义?该漏洞如何帮助攻击者,例如,创建后门?如果栈溢出攻击需要注入shellcode,则意味着攻击者已经获得系统控制权,可以为所欲为(栈溢出攻击是不必要的),或者意味着用户必须做攻击者需要的事情(在这种情况下,攻击者可以说服用户运行一个可执行文件来满足他的所有需求——堆栈溢出攻击是不必要的)。

请说明我的推理错误的地方。

【问题讨论】:

  • 我投票结束这个问题,因为它属于 security.stackexchange.com

标签: security stack-overflow


【解决方案1】:

这是我的答案:

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

【讨论】:

    猜你喜欢
    • 2012-08-31
    • 2016-03-22
    • 2011-12-13
    • 2021-04-28
    • 2010-11-01
    • 2019-05-18
    • 2020-08-23
    • 1970-01-01
    • 2015-11-24
    相关资源
    最近更新 更多