我必须在易受攻击的 C++ 程序中利用一个非常简单的缓冲区溢出来进行赋值,但我无法找到环境变量 SHELL。
我以前从未与 BoF 合作过,在阅读了很多类似的问题、帖子等之后。我有这些信息(如果有误,请纠正我):
- 该程序将环境变量存储在一个名为的全局变量中
environ
我可以像这样找到这个变量的地址:
(gdb) info variable environ All variables matching regular expression "environ": Non-debugging symbols: 0xb7fd1b00 __environ 0xb7fd1b00 _environ 0xb7fd1b00 environ
我需要
/bin/bash
在该变量中找到字符串来启动 shell(我已经获得了系统和退出地址,我只需要到 shell 的路由)。这是我不知道该怎么做的地方。我一直在阅读 gdb 教程,但仍然没有。x/s 0xb7fd1b00
不输出任何有用的东西。