查找缓冲区溢出攻击的/ bin / bash地址

时间:2013-02-13 12:10:38

标签: bash buffer-overflow

我正在尝试ret-to-libc攻击并使用以下代码获取环境变量/ bin / bash的地址

#include <unistd.h>
int main(void)
{

  printf("bash address: 0x%lx\n", getenv("SHELL"));
 return 0;
}

当我使用gdb的x命令检查此代码返回的地址是否正确时,它第一次正确显示。但是当执行其他程序时,该地址会自动更改。我该怎么做才能保留此环境变量的地址不变?我正在使用此地址进行缓冲区溢出,但由于它随着每次运行而不断变化,因此攻击永远不会成功。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您必须禁用ASLR,地址才能保持不变。

echo 0 | tee /proc/sys/kernel/randomize_va_space