1

增加缓冲区大小如何增加 ASLR 暴力破解成功的机会?

这与我最近做的一个项目有关。我们有一个exploit_1.c 程序,它有一个缓冲区/字符数组(最初大小为517)。使用 memset 将缓冲区设置为 NOP。然后我们将 shellcode 和返回地址放入缓冲区,然后将其写入一个名为 badfile 的文件。该程序采用了一个参数,即返回地址。我们有一个 stack.c 程序,它在一个名为 bof 的函数中将坏文件的内容复制到大小为 12 的缓冲区中。

我读过一种方法是在 NOP sled 的末尾放置一个跳转并将其重定向到 shellcode。但是,shellcode 是 24 个字节,并且在返回地址之前最多只有 16 个字节。所以我所做的就是将 shellcode 放在缓冲区的末尾。

我们得到的第三个任务是选择返回地址,以便利用程序(当然针对缓冲区大小进行了修改)在缓冲区大小为 1000、10000 和 100000 时具有更高的平均成功机会。我们使用了带有计数器的 bash while 循环计算 ASLR 蛮力尝试了多少次。

所以我在想的是,随着内存的增加,NOP 雪橇显然会更长。但必须有更多的东西。

我选择的地址是:0xbf87f030 0xbf82e3d0 0xbfe0fb60

4

0 回答 0