首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >信息泄漏的ASLR旁路

信息泄漏的ASLR旁路
EN

Security用户
提问于 2017-08-14 21:35:52
回答 1查看 4K关注 0票数 8

通过RPI 这里的现代二进制开发课程。我在利用ASLR的例子中遇到了麻烦,ASLR应该使用内存泄漏来获取堆栈的信息,然后计算系统调用的偏移量。下面是代码:

代码语言:javascript
复制
#include <stdio.h>
#include <string.h>

/* gcc -pie -fPIE -fno-stack-protector -o aslr_leak2 ./aslr_leak2.c */

int main(int argc, char * argv[])
{

char leaky[16];

if(argc < 2)
{
    printf("Please provide two arguments.\n");
    return 1;
}

memcpy(leaky, argv[1], 16);

printf("Leaky buffer: %s\n", leaky);
printf("another round? : ");
fgets(leaky, 64, stdin);

return 0;
}

看起来不像一个格式字符串漏洞来获取内存泄漏,所以我不知道它应该如何工作。如果我的理解是正确的,我应该从第一个打印中获得一些信息,这有助于我覆盖返回指针来创建ROP小工具。是的,如果我愿意的话,我可以在GDB内部运行这个程序,但是我希望能够不这样做。

EN

回答 1

Security用户

发布于 2017-08-15 08:28:54

提供16个字符作为第一个参数,您将填充泄漏缓冲区。由于没有终止空空间,随后的printf将回显16个字符,并将继续打印堆栈上的任何内容,直到遇到终止空字符为止。这是你的信息泄露。然后,可以根据泄露的地址/es计算ROP小部件的地址。

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/167495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档