1

这是易受攻击的脚本:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
char buffer[30];
strcpy(buffer, argv[1]);
return 0;
}

我正在尝试在打开 ASLR 和 NX 的情况下利用此脚本。我打算为 ASLR 使用返回 libc 方法,我想知道跳转到注册技术是否可以跳转到库。例如,如果库的位置存储在 EAX 中,我可以让返回地址指向“跳转到 EAX”的操作码吗?或者有没有其他方法可以同时绕过 ASLR 和 NX?谢谢

4

2 回答 2

0

我曾认为“返回 libc”(或任何库或程序代码)用于绕过 NX。所以我相信你有倒退。

ASLR 被用来进行“返回 libc”的攻击,更难实现。要绕过 ASLR,您需要有一种方法来侦察库位置,例如通过 printf 格式字符串漏洞,或者您需要运行您的漏洞利用数百次,直到您找到正确的随机位置。

于 2011-07-02T20:40:19.683 回答
0

好吧,有一个操作码调用(毕竟函数指针是这样实现的),但这无济于事(而且你如何首先将地址放入 eax 对我来说是一个谜——我认为这不太可能)

毕竟你仍然需要堆栈是可执行的(否则在那里存储一个操作码不会有什么好处)并且知道它的地址以便你可以跳转到它。有很多方法可以绕过这些保护措施,但这并不容易——尽管我相信你可以通过谷歌搜索找到足够多的关于该主题的论文——但如果你有一个绕过 ASLR 和 NX 的漏洞,你就不需要返回libc 攻击不再是因为您已经控制了系统。

于 2011-07-02T20:40:57.870 回答