Nuevos labs cada semana — Accede a todos desde 7,99€/mes
Ver labs →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
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
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
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
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
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
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
Cargando labs...
Ver en catálogo completo →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.
Otras categorías relacionadas
Empieza con labs de Path Traversal
Practica Path Traversal / Directory Traversal con labs basados en reportes reales. En español. Desde 7,99€/mes.
Empieza con el primer lab de Path Traversal