Nuevos labs cada semana — Accede a todos desde 7,99€/mes
Ver labs →Labs de LFI
Local File Inclusion (LFI)
¿Qué es LFI?
El Local File Inclusion ocurre cuando una app incluye y procesa un fichero local cuya ruta controla el usuario. Más allá de leer ficheros sensibles, cuando el fichero se interpreta como código (include PHP) escala a RCE vía log poisoning, wrappers PHP o /proc.
¿Por qué practicar LFI?
El LFI sigue muy presente en apps PHP legacy y en frameworks que incluyen plantillas/idiomas por parámetro. Su atractivo es la escalada: de leer ficheros a RCE completa con técnicas como log poisoning o php://filter. Un LFI que llega a RCE es P1 con bounties de $3,000-$25,000.
¿Qué aprenderás con los labs de LFI?
Aprenderás a detectar parámetros de inclusión, leer ficheros con traversal y wrappers (php://filter para exfiltrar código fuente en base64), y las cadenas clásicas de LFI a RCE: envenenamiento de logs, /proc/self/environ, data:// y php://input, además de los bypasses de filtros y prefijos.
Tipos de LFI que cubrimos
- LFI básico
?page=../../../../etc/passwd — inclusión de ficheros locales arbitrarios para lectura.
- php://filter
php://filter/convert.base64-encode/resource=index.php — exfiltra el código fuente PHP en base64 sin ejecutarlo.
- Log poisoning → RCE
Inyectas PHP en un log (User-Agent) y luego lo incluyes para ejecutarlo.
- Wrappers data:// / php://input
data://text/plain;base64,... o php://input para incluir código directamente y lograr RCE.
¿Cómo encontrar y explotar LFI?
Playbook práctico — del recon a la prueba de concepto.
- 1
Detectar el parámetro de inclusión
Parámetros que cargan plantillas, idiomas o páginas (page, file, lang, include, template) son los candidatos a LFI.
GET /index.php?page=home - 2
Confirmar lectura local
Sustituye el valor por una ruta con traversal a un fichero conocido. Si su contenido aparece, hay inclusión local.
?page=../../../../../../etc/passwd - 3
Exfiltrar código con php://filter
Usa el wrapper filter para que el PHP no se ejecute y se devuelva en base64; decodifícalo para leer el código fuente y buscar secretos.
?page=php://filter/convert.base64-encode/resource=config.php - 4
Saltar filtros y prefijos
Si limpian ../ o fuerzan una extensión, usa secuencias anidadas, doble encoding o, en motores muy antiguos, el null byte.
....//....//etc/passwd · %252e%252e%252f · ...%00.php - 5
Escalar a RCE
Envenena un log o la sesión con PHP y vuelve a incluirlo, o usa data://, php://input o /proc/self/environ para ejecutar tu código.
User-Agent: <?php system($_GET['c']); ?> → ?page=/var/log/nginx/access.log&c=id
Aprende la teoría
Academy: File Upload Vulnerabilities
Cargando labs...
Ver en catálogo completo →Preguntas frecuentes
¿Qué es el Local File Inclusion (LFI)?
Es una vulnerabilidad en la que la app incluye un fichero local cuya ruta controla el usuario. Permite leer ficheros sensibles y, cuando el fichero se interpreta como código (típico en PHP include), escalar a ejecución remota de comandos.
¿Cómo se explota un LFI?
Se manipula el parámetro de inclusión con traversal para leer ficheros (../../etc/passwd) o con wrappers como php://filter para exfiltrar código fuente. Para RCE, se envenena un log o la sesión con PHP y se incluye, o se usan wrappers data:// y php://input.
¿Cómo encontrar LFI en bug bounty?
Fuzzea parámetros que carguen páginas, plantillas o idiomas (page, file, lang) con payloads de traversal y wrappers. Apps PHP legacy y frameworks que incluyen vistas por parámetro son los objetivos más probables; php://filter ayuda a confirmar sin disparar errores.
¿Cómo prevenir el LFI?
No incluyas ficheros a partir de input del usuario; usa una allowlist de páginas/plantillas mapeadas server-side, canonicaliza y valida la ruta dentro del directorio permitido, y desactiva wrappers peligrosos y allow_url_include en PHP.
¿Diferencia entre LFI y RFI?
El LFI incluye ficheros LOCALES del servidor; el RFI (Remote File Inclusion) incluye un fichero REMOTO desde una URL del atacante (requiere allow_url_include). El RFI da RCE de forma más directa, pero hoy es raro porque esa opción suele estar deshabilitada; el LFI es mucho más común.
Otras categorías relacionadas
Empieza con labs de LFI
Practica Local File Inclusion (LFI) con labs basados en reportes reales. En español. Desde 7,99€/mes.
Empieza con el primer lab de LFI