gpt4 book ai didi

linux - C Windows/Linux 缓冲区溢出漏洞

转载 作者:太空宇宙 更新时间:2023-11-04 04:44:10 25 4
gpt4 key购买 nike

我已经研究了缓冲区溢出是如何工作的,并且必须确定程序(使用 gcc)必须使用以下参数进行编译:-fno-stackprotector 和 -z execstack。你必须告诉内核,它不会在每次启动程序时随机分配地址(但这并不是绝对必要的,只会使缓冲区更容易溢出)

一个人现在应该编写一个漏洞利用程序吗? G。针对Apache,Apache开发者不会使用上述参数编译程序。

这些漏洞如何仍然有效?

最佳答案

-fno-stack-protector 禁用金丝雀,金丝雀是放置在函数帧和保存的指令指针之间的随机值。 -zexecstack 使堆栈内存区域可执行,以便轻松执行代码。禁用这两种保护后,编写漏洞利用程序就容易得多。有时,地址空间布局随机化 (ASLR) 也会被禁用,这意味着每次执行时内存中的所有偏移量都将相同。对于开始进行漏洞利用开发的人来说,这些保护措施将被关闭,以便他们了解这些技术和攻击向量。

然而,对于诸如 apache 之类的实际软件,它们通常是在所有保护的情况下编译的(另外还有 PIE、RELRO)。但有一些技术可以帮助您执行代码。其中之一称为面向返回编程(ROP),如果使用得当,可以帮助您击败 NX(不可执行内存区域)。此外,为了绕过 ASLR/PIE,您还需要一个 leak 原语来从内存中获取地址。为现代软件编写漏洞利用程序并非不可能,只是很困难。

关于linux - C Windows/Linux 缓冲区溢出漏洞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48536301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com