缓冲区溢出与64位漏洞利用技术解析
1. 缓冲区溢出基础理解
当多次运行命令时,内存地址保持一致,这表明已关闭地址空间布局随机化(ASLR)。假设 bovrflow.c
编译正常且 ASLR 已关闭,我们可以执行这个存在漏洞的程序。
- 输入 10 个字符:
# ./bovrflow AAAAAAAAAA
You entered: AAAAAAAAAA
程序正常执行并显示输入字符后退出。
- 输入超过 14 个字符:
# ./bovrflow AAAAAAAAAAAAAA
You entered: AAAAAAAAAAAAAA
Segmentation fault
输入超过缓冲区容量的数据会导致段错误,这正是我们所期望的。为了查看程序运行时内存空间的情况,我们使用 gdb
调试器:
gdbb ovrflow
2. 使用 gdb 调试程序
- 正常运行测试 :在
gdb
提示符下输入r AAAAA
运行程序:
(gdb) r AAAAA
Starting program: /ro