LFI EN PHP: QUÉ ES Y CÓMO PREVENIR ESTA VULNERABILIDAD
Hace poco descubría la vulnerabilidad LFI (Local File Inclusion) o la inclusión local de ficheros que consiste en incluir ficheros locales, es decir, archivos que se encuentran en el mismo servidor de la web. Esta vulnerabilidad permitiría a un atacante modificar los parámetros de lo que se incluye, por ejemplo, podría indicarle al sitio web que se incluyan otros archivos que también están en el servidor, comprometiendo la seguridad del mismo por completo. Un ejemplo sería el archivo de contraseñas, de configuración, etc...Seguro que más de uno habéis visto páginas web que tienen un parámetro GET como page y donde el atacante podría cargar el fichero alojado en el servidor que quiera.
include $_GET[?pagina?];
- Directa: Eliminar los caracteres "\" o "/" de los datos enviados por los usuarios.
- Relativa: Subir hacia directorios superiores mediante el uso de "..\" o "../". Lo podríamos evitar excluyendo, además de lo anterior, los puntos.
$pagina = isset($_GET['pagina']) ? $_GET['pagina'] : 'home';
require $pagina . '.php';