XML External Entity · XXE
Un XML piégé. Un fichier local lu.
Un parseur XML vulnérable interprète une entité externe SYSTEM et renvoie le contenu d'un fichier interne. L'attaque se déroule en une seule requête.
- ≈ 4 min
- Équipes techniques
- Entité externe
- Lecture de fichier
- Parseur XML
- OWASP A05
Simulation pas à pas
Suivez l'attaque étape par étape
Document XML reçu
Un service XML interne exposé
L'application accepte des fichiers XML pour importer des données ou configurer un service.
Une interface XML souvent oubliée
Import XML, webservice SOAP, API de configuration : ces points d'entrée peuvent traiter des documents sans vérifier les entités externes.
Chiffres clés
Une requête suffit à exfiltrer un secret
- OWASP Top 10 · 2021
A05
Security Misconfiguration : la XXE y est classée depuis 2021- Clic requis
0
pour l'attaque- Fichier local lu
0
/etc/passwd ou .env- Données exposées
∞
à partir d'une seule requête
Protection
Comment s'en protéger
La XXE naît d'une configuration par défaut trop permissive. Elle se corrige surtout côté parseur.
Désactiver les entités externes
Configurez le parseur pour refuser les DOCTYPE et les entités externes : c'est la correction principale.
Bibliothèques à jour
Utilisez des parseurs récents, sûrs par défaut, et appliquez les correctifs de sécurité sans attendre.
Formats plus simples
Préférez JSON quand c'est possible ; sinon, validez chaque document contre un schéma XSD strict.
Cloisonner le service
Moindre privilège sur les fichiers et filtrage des flux sortants limitent ce qu'une XXE peut lire ou joindre.
Démo technique
Testez par vous-même
Cette simulation vous permet d'envoyer un XML malveillant et d'observer le comportement d'un parseur vulnérable. Tout est simulé dans la page : aucun fichier n'est lu, aucune requête n'est envoyée.
Démo interactive
Injectez une charge utile XXE
Aucune injection simulée
Choisissez une charge utile ou tapez la vôtre, puis cliquez sur Simuler
Entité externe XML
Le parseur XML lit une entité SYSTEM distante ou locale. Si les entités externes sont activées, le serveur peut charger un fichier système ou une ressource interne.
Comment se protéger
- Désactiver les DTD et les entités externes dans le parseur XML.
- Valider les documents XML avant traitement.
- Utiliser un parseur sécurisé sans chargement de ressources externes.
Simulation pédagogique : aucune donnée réelle n'est transmise. Ne reproduisez ces techniques que sur des systèmes dont vous avez l'autorisation.
FAQ
Questions fréquentes
Qu'est-ce qu'une attaque XXE (XML External Entity) ?
XXE est une vulnérabilité qui exploite les parseurs XML mal configurés acceptant les entités externes. En définissant une entité XML pointant vers un fichier local (file:///etc/passwd) ou une URL interne, l'attaquant peut lire des fichiers sensibles du serveur, effectuer du SSRF, ou provoquer un déni de service (« billion laughs », une expansion d'entités en cascade qui sature la mémoire).
Comment fonctionne l'injection XXE ?
La charge utile (payload) XXE de base : <!DOCTYPE foo [<!ENTITY xxe SYSTEM 'file:///etc/passwd'>]><foo>&xxe;</foo>. Lors de l'analyse, le serveur remplace &xxe; par le contenu du fichier /etc/passwd et le retourne dans la réponse. Pour la SSRF par XXE, on remplace file:// par http:// pour faire des requêtes vers des services internes.
Comment prévenir les attaques XXE ?
Prévention XXE : désactiver le traitement des entités externes et DTD dans tous les parseurs XML (FEATURE_EXTERNAL_GENERAL_ENTITIES=false en Java), utiliser des formats moins dangereux comme JSON quand possible, valider et filtrer les entrées XML côté serveur, et mettre à jour les bibliothèques XML régulièrement (beaucoup de parseurs anciens sont vulnérables par défaut).
Quelles bibliothèques XML sont vulnérables par défaut au XXE ?
Les bibliothèques vulnérables par défaut incluent : libxml2 (PHP, Python, Ruby) avant configuration, Java SAX Parser, Java DOM Parser, .NET XmlDocument (Framework), Python lxml. Les bibliothèques sûres par défaut : defusedxml (Python), nokogiri avec NONET (Ruby). OWASP classe XXE en A05:2021 (Security Misconfiguration).
Pour aller plus loin
Outils et lectures liés à ce module
Formez vos équipes avec un expert
Ateliers de sensibilisation sur mesure, simulations d'attaques et formations pour ancrer les bons réflexes dans votre organisation.