我在测试一个题目,出现 Got EOF while reading in interactive 现象。我所编译得文件已经关闭了地址随机化,在exp 运行过程中还是发现了地址变化。详细如下:1;我编译得命令:
gcc -m32 -fno-stack-protector -no-pie -o test test.c
2;checksec 查寻如下: 3;使用gdb调试,print 函数地址 4;编写exp ,运行发现错误 5;调整exp ,进行调试,代码如下: 6;调试发现,在exp执行过程中system 得地址已经改变 7;补充说明:python使用得是PyCharm 生成得虚拟运行环境。8;源码:
#include <stdio.h> #include <stdlib.h> #include <unistd.h> void vulnerable_function() { char buf[128]; read(STDIN_FILENO, buf, 256); } int main(int argc, char** argv) { vulnerable_function(); write(STDOUT_FILENO, "Hello, World\n", 13); }
-no-pie只是针对编译的ELF文件做了随机化,libc加载地址跟/proc/sys/kernel/randomize_va_space有关,echo 0 > /proc/sys/kernel/randomize_va_space再测下看