Généralités
Description
Les failles d'XML External Entity (XXE) se produisent lorsqu'une application XML permet à un attaquant d'inclure des entités externes malveillantes ou des références à des ressources externes non sécurisées dans un document XML. Cela peut entraîner la divulgation de données sensibles, le déni de service, voire l'exécution de code à distance.
Types d'Attaques XXE
XXE Basique :
- Se produit lorsque l'application XML traite les entités externes sans validation ou protection adéquates.
- Cette attaque récupère le contenu du fichier
/etc/passwd
.
XXE Out-Of-Band (OOB) :
- Se produit lorsque l'attaquant utilise l'entité externe pour initier une connexion sortante vers un serveur contrôlé par lui.
- Cette attaque peut être utilisée pour exfiltrer des données vers un serveur contrôlé par l'attaquant.
Prévention des Attaques XXE
Désactivation du Parsing des DTD :
- Désactiver le parsing des DTD (Document Type Definitions) dans les bibliothèques XML.
Validation des Entrées XML :
- Valider et restreindre les entrées XML pour s'assurer qu'elles ne contiennent pas d'entités externes malveillantes.
Utilisation de Méthodes Sécurisées :
- Utiliser des méthodes sécurisées pour le traitement des documents XML, telles que DOM sécurisé ou SAX avec les entités externes désactivées.
Détection des Failles XXE
Analyse de la Configuration :
- Examiner la configuration XML pour vérifier si le parsing des DTD est activé.
Tests Manuels :
- Effectuer des tests manuels en injectant des payloads XXE et en observant les réponses de l'application.
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 XXE.
Exemples de Prévention
Désactivation des DTD dans Java :
Utilisation de SAXParser avec les Entités Externes Désactivées :
Catégorie | Information |
---|---|
TTP | Exploitation des références d'entités externes dans XML |
CWE | CWE-611 (Improper Restriction of XML External Entity Reference) |
Description de l'attaque | Une attaque XXE se produit lorsqu'un attaquant exploite des applications qui analysent XML de manière à injecter des références à des entités externes malveillantes. Cela peut mener à la divulgation d'informations confidentielles, au déni de service, ou à l'exécution de code à distance. |
Impacts potentiels | - Divulgation d'informations sensibles - Déni de service - Exécution de code à distance - Porte dérobée dans les systèmes |
Comment la détecter | - Analyse de code statique et dynamique - Utilisation de scanners de vulnérabilité - Tests de pénétration ciblant les fonctionnalités de traitement XML |
Remédiations/mitigations | - Désactivation du traitement des entités externes dans les parseurs XML - Validation et nettoyage des entrées XML - Utilisation de listes blanches pour les éléments XML traités - Mise à jour régulière des bibliothèques et frameworks XML |
Lien de référence | OWASP - XML External Entity (XXE) Processing |