Labs de Path Traversal

Path Traversal / Directory Traversal

¿Qué es Path Traversal?

El Path Traversal permite acceder a archivos y directorios fuera del directorio raíz de la aplicación. Usando secuencias como ../ se puede leer archivos del sistema como /etc/passwd, configuraciones, claves privadas y código fuente.

¿Por qué practicar Path Traversal?

El Path Traversal puede dar acceso a archivos sensibles del servidor: configuraciones con credenciales, claves SSH, código fuente. Cuando se encadena con otras vulns (file upload, LFI a log → poisoning), puede llevar a ejecución remota de código (RCE) y bounties de cinco cifras.

¿Qué aprenderás con los labs de Path Traversal?

Aprenderás técnicas de bypass de filtros (URL-encoding, double encoding, null byte, alternativas a ../), targets típicos por OS (etc/passwd, web.config, .env, .git/config, ~/.ssh/id_rsa), y chains de LFI a RCE vía log poisoning, /proc/self/environ y session injection.

Tipos de Path Traversal que cubrimos

  • Path traversal puro

    ../../../etc/passwd para leer archivos. El parámetro vulnerable suele ser file/path/template/page.

  • LFI (Local File Inclusion)

    El archivo leído se interpreta como código (PHP include). Permite RCE vía log/session/proc poisoning.

  • Encoded bypass

    Filtros que stripean ../ una vez se bypassean con ....// o %2e%2e%2f o doble URL-encode %252e%252e%252f.

  • Null byte (legacy)

    ../../etc/passwd%00.png — el null byte trunca el string en C, bypassando whitelist de extensión.

¿Cómo encontrar y explotar Path Traversal?

Playbook práctico — del recon a la prueba de concepto.

  1. 1

    Localizar parámetros de fichero

    Cualquier parámetro que lea/descargue/incluya un archivo es candidato: file, path, page, template, doc, download, lang.

    GET /download?file=informe.pdf
  2. 2

    Probar el traversal básico

    Sustituye el valor por una ruta con ../ hacia ficheros conocidos del sistema. /etc/passwd en Linux, win.ini en Windows.

    ?file=../../../../../../etc/passwd
  3. 3

    Bypassear filtros de ../

    Si limpian ../ una vez, usa secuencias anidadas, URL-encoding y doble encoding para reconstruir la secuencia tras el filtro.

    ....//....//etc/passwd   ·   %2e%2e%2f   ·   %252e%252e%252f
  4. 4

    Saltar prefijos/sufijos forzados

    Si la app antepone una ruta base, traversa desde ahí; si añade una extensión, prueba el null byte (motores legacy) o wrappers.

    ?file=../../../../etc/passwd%00.png
  5. 5

    Apuntar a ficheros jugosos

    Más allá de /etc/passwd, ve a configs y secretos: variables de entorno, claves, código fuente y repos.

    .env · .git/config · /proc/self/environ · ~/.ssh/id_rsa · web.config
  6. 6

    Escalar de LFI a RCE

    Si el fichero se interpreta como código (include PHP), envenena un log o la sesión con código y vuelve a incluirlo.

    User-Agent: <?php system($_GET['c']); ?>  →  ?file=/var/log/apache2/access.log&c=id

Aprende la teoría

Academy: File Upload Vulnerabilities

Preguntas frecuentes

¿Qué es el Path Traversal?

Es una vulnerabilidad que permite acceder a ficheros fuera del directorio previsto de la aplicación usando secuencias como ../, llegando a leer /etc/passwd, ficheros de configuración con credenciales, claves SSH o código fuente.

¿Cómo se explota un Path Traversal?

Se manipula un parámetro que referencia un fichero introduciendo ../ para subir de directorio y apuntar a archivos sensibles. Si hay filtros, se bypassean con doble encoding (%252e), secuencias anidadas (....//) o null bytes en motores antiguos.

¿Cómo encontrar Path Traversal en bug bounty?

Fuzzea todos los parámetros que manejen rutas o nombres de fichero (file, page, template, download) con payloads de traversal y sus variantes codificadas. Una respuesta con el contenido de /etc/passwd confirma el bug.

¿Cómo prevenir el Path Traversal?

Evita pasar input del usuario a rutas de fichero; usa identificadores indirectos mapeados server-side, canonicaliza la ruta (realpath) y verifica que queda dentro del directorio base, y aplica allowlist de nombres/extensiones.

¿Diferencia entre Path Traversal y LFI?

El Path Traversal lee el fichero como datos (te devuelve su contenido). El LFI lo incluye y lo ejecuta como código (típico en PHP include), lo que abre la puerta a RCE vía log poisoning o wrappers. El LFI es esencialmente un Path Traversal sobre una función de inclusión de código.

650

hunters entrenando

50

labs de reportes reales

380

completaciones

$200.000

en bounties practicados

40 flags capturadas esta semana·Reportes reales de HackerOne · Bugcrowd · Intigriti·Sin permanencia·Academy gratis
BBLabs · bug bounty en español

Practica Path Traversal en labs reales

Cada lab de Path Traversal replica un reporte real de bug bounty que se pagó. Crea tu cuenta gratis, empieza por la Academy y pasa a los labs cuando quieras.

Sin tarjeta · Academy gratis · cancela cuando quieras