0

我正在尝试在 linux 中进行简单的缓冲区溢出攻击。我有一个接受命令行参数的易受攻击的程序。我有另一个程序,它设置了一个环境变量,其中包含一些我想要执行的代码(通常是 shellcode)。现在我试图用这个环境变量的地址溢出我易受攻击的程序的缓冲区。我有以下问题:

  1. 当我将环境变量作为命令行参数传递时,变量的内容是否被复制到易受攻击程序的 argv 中?

  2. 环境变量(命令行参数)将存储在进程的地址空间中的什么位置?它会在进程堆栈上还是在其他地方?

4

1 回答 1

2
  1. 是的。
  2. 这取决于实施。

你大概在做类似的事情:

victim "$SHELLCODE"

如果$SHELLCODE也是一个环境变量,程序将在环境中获得一份副本,前面是SHELLCODE=这样可以通过 检索getenv(),并在argv参数列表中获得一份副本。

于 2012-09-09T19:17:33.200 回答