¿Qué es path traversal?

Autor: | Última modificación: 1 de noviembre de 2023 | Tiempo de Lectura: 3 minutos
Temas en este post: ,

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿Sabes qué es path traversal, cómo se utiliza esta técnica en ciberseguridad y por qué es importante aprender a reconocer vulnerabilidades relacionadas con esto?

El pentesting web es una rama de la ciberseguridad que se especializa en poner a prueba el nivel de seguridad de las aplicaciones web. Para ello, se utilizan técnicas de hacking que permiten identificar y explotar las vulnerabilidades del software.

Las vulnerabilidades son fallos en la programación del sitio web que ponen en riesgo a la aplicación y sus clientes. Un pequeño error de este tipo podría poner bajo compromiso los datos confidenciales de los usuarios registrados o, incluso, la integridad de los servidores de la aplicación.

En este post, hablaremos sobre una técnica de hacking web que se utiliza para explotar una determinada vulnerabilidad en ciertas aplicaciones. A continuación, te explicaremos qué es path traversal y cómo se implementa en ciberataques web o auditorías de seguridad.

¿Qué es path traversal?

El path traversal, directory traversal o, en español, salto de directorios es una técnica de hacking web que permite acceder a ficheros de la aplicación para los cuales no se debería tener autorización. Este ciberataque es posible cuando las aplicaciones presentan ciertas vulnerabilidades, que consisten en construir la ruta de descarga de un fichero por medio de un input ingresado por el usuario. Esta falta de validación del input puede ser explotada por un atacante para descargar información sensible, como datos personales y contraseñas.

Ejemplo de path traversal

Ya hemos visto qué es path traversal. Ahora, para concocer mejor el concepto, veremos ejemplos de vulnerabilidades y payloads para este ciberataque.

Vulnerabilidad

Una vulnerabilidad de path traversal puede identificarse cuando la dirección URL de un subdirectorio de un sitio web se ve de la siguiente forma:

// Qué es path traversal
http://www.web.com/getFile?=Path=ejemplo.pdf

Explotación

🔴 ¿Quieres entrar de lleno a la Ciberseguridad? 🔴

Descubre el Ciberseguridad Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp en Ciberseguridad por una semana

Para explotar esta vulnerabilidad de path traversa en un servidor de GNU/Linux, se pueden utilizar comandos para acceder a un fichero determinado del servidor. Por ejemplo:

  • Para moverse de manera ascendente entre los directorios:
// Qué es path traversal
../../../
  • Para descargar el fichero «passwd» con las contraseñas del sistema:
/etc/passwd

Es decir, un payload para un servidor Linux se vería del siguiente modo:

// http.request.uri.directory.traversal
http://www.web.com/getFile?=../../../../../etc/passwd

Al ejecutar este payload en una aplicación vulnerable de práctica, como la de Web For Pentester, verás un resultado como el siguiente:

¿Qué es path traversal?

Del mismo modo, en caso de conocer el sistema, por medio de esta vulnerabilidad es posible descargar todo tipo de archivos.

Para que esto no suceda, es necesario tomar medidas desde el backend de la aplicación, ya que las vulnerabilidades que permiten este ataque se relacionan directamente con el código fuente del sitio.

¿Cómo evitar ataques de path traversal?

Ya hemos visto qué es path traversal y algunos ejemplos de vulnerabilidades y payloads relacionados. Ahora, hablaremos sobre cómo pueden evitarse estos ciberataques en aplicaciones web.

Las vulnerabilidades de path traversal se basan en una falta de validación de los inputs del usuario. Es decir, son fallos de seguridad que se hallan directamente en el código fuente de las aplicaciones. Cuando estas utilizan valores ingresados desde el lado del cliente para ejecutar operaciones de descarga de archivos, se ven expuestas a este tipo de ciberataques.

La mejor forma de evitar los ataques de path traversal es limitar al máximo los permisos de los usuarios en este sentido. Es decir, es necesario añadir una validación estricta a los parámetros ingresados y no permitir que ningún comando de Linux o Windows se ejecute desde el lado del cliente.

¿Cómo aprender más?

Ahora sabes qué es path traversal y por qué es importante conocer esta técnica para ser un experto en hacking web. Si quieres continuar aprendiendo y tener clases en vivo con los mejores profesores, en KeepCoding tenemos preparado un curso intensivo justamente para ti.

Ingresa a nuestro Ciberseguridad Full Stack Bootcamp y especialízate en tan solo 7 meses. Aprende sobre temas como information gathering, pentesting, criptografía, análisis de malware y mucho más. ¡No sigas esperando y matricúlate ya!

¡CONVOCATORIA ABIERTA!

Ciberseguridad

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado