我正在阅读“剥削艺术”一书。
这是一本好书,但到目前为止我遇到的每一个漏洞对我都没用。在我看来,我已经跟着这封信,认为没有人是完美的,所以我可能仍然犯了错误。
但是我发现一些评论说自从这本书写完以来,linux操作系统已经更新了。
所以我想问一下是否有人知道这些书中的例子是否已经过时,或者我是否应该遵循这封信,或者我是否必须设计一些代码以使其起作用?
注意: 我已经阅读了第60页。
我尝试使用perl编写exploit.c代码以及手动编写溢出程序。
这是我一直试图溢出的代码:
int main(int argc, char *argv[])
{
char buffer[500];
strcpy(buffer, argv[1]);
return 0;
}
答案 0 :(得分:1)
好吧,我还没读过这本书,但总的来说我可以说。
零日攻击(在最新更新版本的软件上运行)不会持续很长时间,并且在软件作者出版任何此类书籍之前通常都无法使用(该书的作者通常会报告它们)。操作系统/编译器增加了新的和新的保护措施,但这些保护措施大多只对新编译的代码有效(这意味着旧的代码在新系统上仍然容易受到攻击),并且保护可能无论如何都要逃避(更难)。 / p>
至于你的例子。这取决于你试图利用漏洞做什么。但只要只涉及基础学习,尝试关闭DEP,ASLR并在编译时已经提到过SSP,这应该可以让它轻松工作。
如果您使用的是gcc,那么:
-fno-stack-protector
,-z execstack
-O0
和-g
也可能有助于发现其他问题。