Entry № 1219
栈溢出漏洞
栈溢出漏洞 是什么?
栈溢出漏洞发生在程序栈上的缓冲区溢出,通常会覆盖保存的返回地址或局部函数指针以重定向执行。
栈溢出漏洞是内存破坏类利用的历史原型:在未经检查的写入下,栈上分配的缓冲区被越界写入,进而覆盖函数保存的帧指针或返回地址,攻击者就可以将控制流重定向至受控字节(shellcode 或 ROP 链)。防御措施包括栈金丝雀(StackGuard、/GS)、不可执行栈(DEP/NX)、地址空间布局随机化(ASLR)、影子栈、Intel CET,以及编译器层的 FORTIFY_SOURCE 和更安全的字符串处理。尽管经过数十年缓解,经典栈溢出仍频繁出现在固件、IoT 和遗留软件中,持续出现在 CVE 与 CTF 题目中。
● 示例
- 01
CVE-2003-0352(DCOM RPC):Blaster 蠕虫利用栈溢出。
- 02
CVE-2019-0708(BlueKeep):远程桌面服务栈溢出。
● 常见问题
栈溢出漏洞 是什么?
发生在程序栈上的缓冲区溢出,通常会覆盖保存的返回地址或局部函数指针以重定向执行。 它属于网络安全的 漏洞 分类。
栈溢出漏洞 是什么意思?
发生在程序栈上的缓冲区溢出,通常会覆盖保存的返回地址或局部函数指针以重定向执行。
如何防御 栈溢出漏洞?
针对 栈溢出漏洞 的防御通常结合技术控制与运营实践,详见上方完整定义。
栈溢出漏洞 还有哪些其他名称?
常见的别称包括: 栈缓冲区溢出, 栈破坏。