Pull the Plug: level 2

Escrito por coder el 06 de febrero de 2008 en Informática | Hits: 793

El código para el level 2 de Pull the Plug es el siguiente:

 

 

#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>


int main(int argc, char **argv)
{
        char *args[] = { "/bin/tar", "cf", "/tmp/ownership.$$.tar", argv[1], argv[2], argv[3] };
        execv(args[0], args);
}

 

 

 

Hasta aquí nada extraño, un execv() que hace uso del comando tar para comprimir el fichero que le pasemos. El "$$" no sirve para nada, aunque pueda usarse... la clave aquí es otra, y es que, sinos fijamos en los permisos del ejecutable...

 

 

level2@vortex ~ $ ls -l /levels/level2
-r-sr-x--- 1 level3 level2 11698 Mar  2  2007 /levels/level2
level2@vortex ~ $
 

 

Vaya, está  setuid para el USUARIO y, oh, mirad el dueño del fichero, level3. Está claro, ¿no?. Hacemos un tar del passwd del nivel3 y arreando :P 



         

« Pull the Plug: level 1

NSLU2 (I) »



Comentarios

[ Comentar la jugada ]