linux缓冲区溢出 - 剥削的艺术到老?

时间:2017-04-23 20:26:22

标签: c linux overflow stack-overflow

我正在阅读“剥削艺术”一书。

这是一本好书,但到目前为止我遇到的每一个漏洞对我都没用。在我看来,我已经跟着这封信,认为没有人是完美的,所以我可能仍然犯了错误。

但是我发现一些评论说自从这本书写完以来,linux操作系统已经更新了。

所以我想问一下是否有人知道这些书中的例子是否已经过时,或者我是否应该遵循这封信,或者我是否必须设计一些代码以使其起作用?

注意: 我已经阅读了第60页。

我尝试使用perl编写exploit.c代码以及手动编写溢出程序。

这是我一直试图溢出的代码:

int main(int argc, char *argv[])
{
char buffer[500];
strcpy(buffer, argv[1]);
return 0;
}

1 个答案:

答案 0 :(得分:1)

好吧,我还没读过这本书,但总的来说我可以说。

零日攻击(在最新更新版本的软件上运行)不会持续很长时间,并且在软件作者出版任何此类书籍之前通常都无法使用(该书的作者通常会报告它们)。操作系统/编译器增加了新的和新的保护措施,但这些保护措施大多只对新编译的代码有效(这意味着旧的代码在新系统上仍然容易受到攻击),并且保护可能无论如何都要逃避(更难)。 / p>

至于你的例子。这取决于你试图利用漏洞做什么。但只要只涉及基础学习,尝试关闭DEP,ASLR并在编译时已经提到过SSP,这应该可以让它轻松工作。 如果您使用的是gcc,那么: -fno-stack-protector-z execstack -O0-g也可能有助于发现其他问题。