Vulnerabilidad Path traversal

 

www.onlinetis.com

La vulnerabilidad Path Traversal, también conocida como "Directory Traversal", es un ataque que permite a un atacante acceder a archivos y directorios fuera del directorio raíz previsto de una aplicación. Esto se logra al manipular la entrada del usuario con secuencias especiales, como ../, que le permiten "subir" en la estructura de directorios del servidor.


¿Cómo funciona?

El ataque explota un control de validación insuficiente en las funciones de la aplicación que manejan rutas de archivos. El atacante inyecta una secuencia que representa un directorio padre para navegar libremente por el sistema de archivos del servidor.

Ejemplo de ataque:

Imagina una aplicación que carga archivos de imagen basándose en un parámetro de la URL:

http://ejemplo.com/mostrar.php?file=imagen1.jpg

El servidor podría estar construyendo la ruta del archivo de la siguiente manera:

/var/www/images/ + [entrada_del_usuario]

Si el atacante no valida la entrada, puede sustituir imagen1.jpg por una secuencia maliciosa:

http://ejemplo.com/mostrar.php?file=../../../../etc/passwd

El servidor, al procesar esta petición, construiría la siguiente ruta:

/var/www/images/../../../../etc/passwd

Al resolver esta ruta, el servidor termina accediendo al archivo /etc/passwd del sistema de archivos, devolviendo su contenido al atacante. Con esta técnica, un atacante puede leer archivos de configuración, código fuente o cualquier otro archivo sensible en el servidor.

Prevención

La prevención se basa en validar y controlar la entrada del usuario de manera estricta:

  • Validación de entrada: Acepta solo nombres de archivo que no contengan los caracteres ../ o secuencias similares que permitan la navegación de directorios. La mejor práctica es utilizar una lista blanca de caracteres permitidos.

  • Normalización de rutas: Antes de procesar la entrada, normaliza la ruta del archivo para asegurarse de que no contenga secuencias de escape.

  • Limitar el alcance: Restringe la capacidad de la aplicación para acceder a archivos fuera de un directorio específico. Esto se puede lograr con un "chroot jail" (cambio de directorio raíz) o un entorno de contenedor que aísle la aplicación.

  • Evitar concatenar directamente la entrada: En lugar de concatenar la entrada del usuario, utiliza APIs de acceso a archivos que resuelvan la ruta de forma segura.

Entradas populares de este blog

Ciberseguridad y hacking con Whatweb

Como robar contraseñas haciendo un phishing web

Arsenal software hacking NFC