Inclusión de archivos locales (LFI)

Una vulnerabilidad de inclusión de archivos es un tipo de vulnerabilidad que se encuentra comúnmente en los sitios web basados ​​en PHP y se usa para afectar las aplicaciones web. Este problema generalmente ocurre cuando una aplicación intenta obtener información de un servidor en particular donde las entradas para obtener una ubicación de archivo en particular no se tratan como una fuente confiable.

Generalmente se refiere a un ataque de inclusión en el que un atacante puede proporcionar una entrada válida para obtener una respuesta de un servidor web. En respuesta, un atacante podrá juzgar si la entrada que proporcionó es válida o no. Si es válido, cualquier archivo que un atacante quiera ver puede acceder fácilmente a él.

El siguiente ejemplo ilustra el procedimiento de trabajo de una vulnerabilidad LFI:

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

Trabajo de inclusión de archivos locales: comprendamos el funcionamiento de la inclusión de archivos locales a través del siguiente ejemplo:

En el ejemplo anterior , $archivo es solo un archivo/código para indicar que el código PHP devolverá un ‘archivo’ en respuesta. El es uno de los conjuntos de instrucciones que obtendrá un archivo o página web en particular de un servidor web, es decir, solicitará un archivo. El es un argumento que definirá qué tipo de páginas se mostrarán en respuesta."$file = $_GET['page'];" $_GET['page']

¿Dónde se encuentra LFI local?
Básicamente esta es la ubicación

http://host_vulnerable/preview.php?file=abc.html

Este es el lugar donde un atacante puede realizar el ataque LFI en las aplicaciones web. El script se puede incluir aquí en la URL que contiene varios parámetros sobre los que se realizará el ataque. Es posible incluir archivos arbitrarios en el servidor. La URL afectada por el atacante sería algo como esto:

http://host_vulnerable/preview.php?document=../../../../etc/passwd

Identificación de vulnerabilidades dentro de la aplicación web: identificar la vulnerabilidad LFI dentro de la aplicación web es fácil, ya que incluirá un archivo de un servidor web y se lo devolverá al atacante.
Por ejemplo , “/fi/?page=include.php” LFI sería posible en dicha aplicación si el ejemplo anterior o algo relacionado con dicho ejemplo existe en la aplicación web.

Un Pentester intentaría beneficiarse de este tipo de configuración incorrecta, es decir, puede explotar esta vulnerabilidad manipulando los parámetros.
Por ejemplo , “/fi/?page=include.php” esto se ejecutará con éxito solo si el archivo index.php” existe en el mismo directorio. Si no, tenemos que agregar “../” delante de “index.php” .

Imagine que este «index.php» está ubicado en la "/var/www/html"carpeta e «include.php» está ubicado en la "/var/www/dvwa/vulnerabilities/lfi/"carpeta y puede ver las respuestas de los archivos solo desde esta ubicación de carpeta. Ahora para ejecutar un archivo ubicado en otro directorio, tenemos que cambiar nuestro directorio en URL. por ejemplo "/fi/?page=../../../index.php"

Hay tres tipos de escenarios posibles en un ataque LFI:

  • Incluyendo archivos para ser analizados por el intérprete del idioma
  • Incluir archivos que se imprimen en una página
  • Incluir archivos que se sirven como descargas

Impactos de una vulnerabilidad de inclusión de archivos locales: un atacante podría obtener acceso a lo siguiente mediante la explotación de la vulnerabilidad LFI:

  • Divulgación de información de archivos almacenados en Web Server
  • Contraseñas/Acceso a la base de datos
  • Archivos de registro
  • Compromiso completo del sistema

Vulnerabilidad de inclusión de archivo de remediación (LFI):

  • No se debe permitir que la ruta del archivo se pueda modificar directamente, ya sea que se codifique o se seleccione a través de la lista de rutas codificadas.
  • Uno debe asegurarse de que el requerido debe tener una concatenación de ruta dinámica, es decir, debe contener (az) (0-9) en lugar de (/, /%, etc.)
  • Debe haber un límite específico en la API para que solo funcione la inclusión de los directorios debajo de ella, de modo que el ataque de Directory Traversal no pueda tener lugar en esta situación.

Publicación traducida automáticamente

Artículo escrito por deepamanknp 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 *