Tengo que explotar un desbordamiento de búfer muy simple en un programa de C ++ vulnerable para una asignación y no puedo encontrar la variable de entorno SHELL.
Nunca he trabajado con BoF antes, y después de leer muchas preguntas similares, publicaciones, etc. Tengo esta información (corríjame si está mal):
- El programa almacena las variables de entorno en una variable global llamada
environ
-
Puedo encontrar la dirección de esta variable de esta manera:
(gdb) info variable environ All variables matching regular expression "environ": Non-debugging symbols: 0xb7fd1b00 __environ 0xb7fd1b00 _environ 0xb7fd1b00 environ
-
Necesito encontrar la cadena
/bin/bash
en esa variable para iniciar un shell (ya tengo el sistema y las direcciones de salida, solo necesito la ruta al shell). Y aquí es donde no sé qué hacer. He estado leyendo tutoriales gdb, pero todavía nada.x/s 0xb7fd1b00
no genera nada útil.