Prevención de la vulnerabilidad de cruce de directorios

Directory Traversal es una vulnerabilidad que permite a los atacantes acceder a archivos que están presentes fuera del directorio raíz o fuera del directorio de inicio de ese servidor web. El directorio raíz tiene algunos archivos internos a los que el usuario no puede acceder. Esta vulnerabilidad se puede encontrar en los servidores web o en el código de la aplicación web. Este tipo de ataque también se conoce como ataque transversal de ruta .

Las vulnerabilidades de cruce de directorios se pueden encontrar probando todas las partes del sitio web que aceptan entradas de usuarios, requests HTTP, formularios y cookies. El atacante utiliza el comando cd con dos puntos (cd…) que lo cambia a su directorio principal. Al agregar ../ directamente a la ruta del archivo en la URL, podemos intentar cambiarlo a directorios superiores para ver los archivos del sistema. 

Algunos de los archivos del sistema a los que puede acceder el atacante:

Para sistemas operativos basados ​​en Unix:

  • Archivo /etc/passwd: contiene información sobre toda la cuenta del usuario
  • Archivo /etc/group: contiene grupos a los que pertenecen los usuarios
  • Archivo /etc/profile: contiene variables predeterminadas para los usuarios
  • Archivo /proc/self/environ: contiene ciertas variables ambientales
  • Archivo /etc/issue: contiene un mensaje que se mostrará antes del inicio de sesión
  • Archivo /proc/version: contiene la versión del kernel de Linux en uso
  • Archivo /proc/cpuinfo: contiene la información del procesador

Para sistemas operativos Windows:

  • C:\Windows\reparación\sistema
  • C:\Windows\reparar\SAM
  • C:\Windows\win.ini
  • C:\boot.ini
  • C:\Windows\system32\config\AppEvent.Evt

Ejemplo de un ataque de Directory Traversal:
un ejemplo típico de un código PHP vulnerable es:

PHP

<?php
  
    $file = $_GET['page']; //The page we want to display 
  
?>

A continuación se muestra una URL que tiene una función de inclusión como solicitud de método GET

http://192.168.29.23/dvwa/vulnerabilities/fi/?page=include.php

Usando Directory Traversal Attack, un atacante puede agregar ../ directamente a la ruta del archivo en la URL

http://192.168.29.23/dvwa/vulnerabilities/fi/?page=../../../../../../etc/passwd

Prevención de ataques de directorio transversal:

  • Para evitar el cruce de directorios en su servidor web, mantenga siempre actualizado su servidor web y su sistema operativo.
  • El sitio web debe validar la entrada del usuario antes de procesarla para evitar ataques de Directory Traversal.
  • Los permisos otorgados a un no superusuario deben ser de solo lectura para los archivos que necesita ejecutar. No se debe permitir que el no superusuario escriba o modifique ningún archivo.
  • Cuando se realiza una solicitud de URL para un directorio o archivo, normalice todos los caracteres. Por ejemplo, todos los %20 deben convertirse en espacios.
  • Siempre ejecute su servidor web desde un disco separado del disco de su sistema porque el disco del sistema tiene información confidencial.
  • Si necesita obtener un nombre de archivo de un usuario, asegúrese de que esté correctamente escaneado con caracteres válidos.

Publicación traducida automáticamente

Artículo escrito por ragini241032 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *