Généralités
Description
Les failles d'inclusion de fichiers locaux (LFI) se produisent lorsqu'une application web inclut des fichiers locaux sans validation adéquate des entrées utilisateur. Cela permet à un attaquant d'inclure des fichiers arbitraires du serveur dans l'application, pouvant entraîner la divulgation de fichiers sensibles, l'exécution de code malveillant, et d'autres conséquences graves.
Exemple d'Attaque LFI
Scénario d'attaque :
- Une application web inclut dynamiquement un fichier en fonction des paramètres fournis par l'utilisateur via une URL, par exemple
https://example.com/index.php?page=home
.
Exemple de code vulnérable :
Exploitation :
- Un attaquant peut manipuler le paramètre
page
pour inclure des fichiers sensibles ou des fichiers de configuration, par exemplehttps://example.com/index.php?page=../../../../etc/passwd
.
Prévention des Attaques LFI
Validation et Sanitation des Entrées :
- Valider et assainir toutes les entrées utilisateur pour s'assurer qu'elles ne contiennent pas de caractères spéciaux ou de chemins relatifs.
Utilisation de Chemins Absolus :
- Utiliser des chemins absolus pour les fichiers inclus afin d'empêcher les manipulations de chemins relatifs.
Configuration du Serveur :
- Configurer le serveur pour restreindre l'accès aux fichiers critiques et sensibles.
Détection des Failles LFI
Revue de Code :
- Examiner le code source pour identifier les inclusions de fichiers basées sur des entrées utilisateur sans validation adéquate.
Tests Manuels :
- Effectuer des tests manuels en manipulant les paramètres de requêtes pour inclure des fichiers arbitraires et vérifier la présence de vulnérabilités.
Utilisation d'Outils de Sécurité :
- Utiliser des outils de sécurité tels que Burp Suite, OWASP ZAP, ou des scanners spécifiques pour détecter les failles LFI.
Exemples de Prévention
Validation stricte des Entrées :
Utilisation de Fonctions Sécurisées :
Contrôle des Chemins :
Catégorie | Information |
---|---|
TTP | Technique d'injection de fichier local |
CWE | CWE-98 (Improper Control of Filename for Include/Require Statement in PHP Program ('PHP Remote File Inclusion')) |
Description de l'attaque | LFI permet à un attaquant d'inclure des fichiers sur un serveur via le navigateur web. Cela se produit souvent lorsque les pages utilisent une entrée non validée pour charger des fichiers dynamiquement. |
Impacts potentiels | - Divulgation d'informations sensibles - Exécution de code à distance - Compromission du serveur web |
Comment la détecter | - Analyse des journaux de serveur web pour les chemins de fichiers suspects - Utilisation de scanners de vulnérabilités - Audits de code pour les inclusions de fichiers non sécurisées |
Remédiations/mitigations | - Validation stricte des entrées utilisateur - Utilisation de la liste blanche pour les chemins de fichiers - Mise à jour et sécurisation des scripts PHP - Désactivation de la directive allow_url_include dans PHP |
Lien de référence | OWASP - Local File Inclusion |