【发布时间】:2015-06-02 02:55:12
【问题描述】:
深入分析漏洞的原因,比如堆栈缓冲区溢出,我有很多问题,我觉得很难回答:
也许是个愚蠢的问题,但是,为什么在操作系统(例如 Windows)中,堆栈上的缓冲区记录发生在已记录信息的方向上: http://s27.postimg.org/udizo3itf/Stack_Overflow_2.png 而不是这样的:http://s18.postimg.org/q6kje5up5/Stack_Overflow_22.png 然后,如果分配的内存不足以容纳缓冲区,程序就会崩溃(试图诉诸未分配的内存)并且函数的返回地址不会被覆盖。
堆栈溢出攻击是否只有在目标程序在系统中具有高权限时才有意义?该漏洞如何帮助攻击者,例如,创建后门?如果栈溢出攻击需要注入shellcode,则意味着攻击者已经获得系统控制权,可以为所欲为(栈溢出攻击是不必要的),或者意味着用户必须做攻击者需要的事情(在这种情况下,攻击者可以说服用户运行一个可执行文件来满足他的所有需求——堆栈溢出攻击是不必要的)。
请说明我的推理错误的地方。
【问题讨论】:
-
我投票结束这个问题,因为它属于 security.stackexchange.com