Test Path Traversal
Objetivo
Determinar si input de usuario puede escapar el límite de path de filesystem previsto y acceder a archivos o directorios inesperados.
Supuestos
- la app lee o escribe archivos basados en identificadores controlados por usuario
- la normalización de path puede estar incompleta
- separadores o encodings específicos de plataforma pueden importar
Prerrequisitos
- endpoints relacionados con archivos o features de upload/extracción
- capacidad de hacer replay de requests y comparar responses
Pasos de recon
- Identificá features de download, preview, importación, extracción y templates.
- Mapeá dónde aparece input tipo path en rutas, params o JSON.
- Notá comportamiento de OS/plataforma donde sea relevante.
Pasos de exploit / testing
- Probá secuencias simples de traversal.
- Testeá variantes encoded o separadores alternativos cuando corresponda.
- Compará comportamiento para operaciones de lectura y escritura.
- Probá workflows de archive extraction o upload por escape de directorio.
- Observá si la normalización ocurre antes o después de la validación.
Señales de validación
- acceso a archivos inesperados
- errores distintos al escapar directorios previstos
- escrituras o extracciones caen fuera de paths controlados
Mitigación
- evitar paths de filesystem raw controlados por usuario
- usar referencias indirectas o allowlists estrictas
- canonicalizar de forma segura y verificar paths finales
- aislar cuentas/directorios de processing y storage
Logging / detección
- strings repetidos con forma de traversal
- accesos fallidos a archivos fuera de árboles esperados
- intentos de extracción o escritura fuera de áreas de upload
Notas relacionadas
Referencias
- Testing / Lab: PortSwigger path traversal topic — https://portswigger.net/web-security/file-path-traversal
- Fundamental: OWASP WSTG — https://owasp.org/www-project-web-security-testing-guide/latest/