🍊Laboratorio: File path traversal, traversal sequences stripped with superfluous URL-decode

  • Lo que intentaremos en este laboratorio es probar los diversos path traversals hasta dar con el que nos de el /etc/passwd

    • Por ahora nos encontramos con algo interesante dentro de los payloads simple list de burp suite, añadimos el de Fuzzing - Path Traversal y vimos como la respuesta nos retornó uno con 200 ok, que es de los hosts.

Aquí está:

Así todo codificado nos dio una respuesta con los hosts de la aplicación:

Y aquí podemos ver como increiblemente, a pesar de que no es lo que buscamos ya no está dando una información muy comprometedora para la aplicación, que son los hosts de la aplicación web junto con sus direcciones en IPV6.


Ahora, un posible enfoque para resolver el Lab, es intentar cambiar el hosts por /etc/passwd, vamos a ver.

Aquí está la clave, vemos como tiene el %2fetc%2fhosts que traducido sería: “/etc/hosts”, pues simplemente cambiemos hosts>>passwd a ver que pasa. 👹

Aquí está, desde burp repeater pudimos cambiarlo, y comprobamos que obtuvimos todas las passwd.

  • Le damos a show response in browser, copiamos y listo:

Hemos resuelto satisfactoriamente el laboratorio. 😃

../../../../../../../../../../../../etc/passwd

Vamos a ver algo interesante:

Si tomamos en cuenta que del ataque de fuerza bruta con el payload de fuzzing, la respuesta que nos dió 200 OK tenía invaluablemente muchos caracteres codificados, y cuando intentabamos decodificarlo nos mostraba esto:

Sigue codificado 😫

Volvemos a decodificarlo (A veces para más seguridad “JAJAJAJA” codifican 2 veces como si eso hiciera la diferencía, en este caso) el payload que nos tomó con exito el 200 OK fue este y a lo mejor las 2 veces codificadas hizó la diferencia para que pudiese haberlo interpretado normal, ahora si lo decodificamos de nuevo esto es lo que obtenemos:

Ahí está, ../../../../../../../../../../../../etc/hosts 12 VECES se tuvó que añadir el path traversal y tras de eso codificado 2 veces, pero así era la forma en como se podía obtener.

  • Ya simplemente era cuestión de cambiar hosts por passwd.

That's all, thanks for read. :)

Last updated