Icône du lab

XXE Exposed

Défi Mis à jour le 21 juin 2026 Solution (Pro)
XXE XML Security File Disclosure External Entity Web Security Vulnerability Assessment

Démarrez la machine, hackez le système et trouvez les flags cachés pour compléter ce défi et gagner des XP!

1
Flags
50
XP
69%
Taux de Réussite

L'injection XML External Entity (XXE) est une vulnérabilité de sécurité web qui cible les applications traitant des entrées XML. Quand les parseurs XML sont configurés pour résoudre les références d'entités externes, les attaquants peuvent exploiter cette fonctionnalité pour lire des fichiers arbitraires sur le serveur, effectuer du Server-Side Request Forgery (SSRF), et dans certains cas obtenir l'exécution de code à distance. Le XXE a été reconnu comme une menace critique dans le Top 10 de l'OWASP et affecte toute application qui analyse des données XML provenant de sources non fiables.

Comment fonctionnent les attaques XXE

XML supporte une fonctionnalité appelée entités externes, définies dans la Document Type Definition (DTD), qui permet aux documents XML de référencer des ressources externes. Une déclaration d'entité comme <!ENTITY xxe SYSTEM "file:///etc/passwd"> indique au parseur XML de récupérer le contenu du fichier spécifié et de l'inclure partout où la référence d'entité &xxe; apparaît dans le document. Quand une application reflète le contenu XML analysé à l'utilisateur, le contenu du fichier est divulgué dans la réponse.

La surface d'attaque du XXE est plus large que ce que beaucoup de développeurs réalisent. Tout endpoint acceptant des entrées XML est potentiellement vulnérable - cela inclut les services web SOAP, les processeurs de flux RSS, les gestionnaires de téléchargement de documents (les fichiers DOCX, XLSX et SVG sont tous basés sur XML), les flux d'authentification SAML et les parseurs de fichiers de configuration. Même les applications qui semblent utiliser JSON peuvent accepter du XML si l'en-tête Content-Type est modifié, car de nombreux frameworks supportent plusieurs types de contenu de manière transparente.

Techniques XXE avancées

Quand l'application ne reflète pas directement le contenu XML, les attaquants peuvent utiliser des techniques hors bande (OOB) pour exfiltrer des données. En définissant des entités externes qui effectuent des requêtes HTTP vers un serveur contrôlé par l'attaquant avec le contenu des fichiers encodé dans l'URL, des données sensibles peuvent être extraites sans aucune sortie visible dans la réponse de l'application. Les entités de paramètres et les techniques basées sur les erreurs fournissent des canaux d'exfiltration supplémentaires quand les approches standards échouent.

Prévenir les vulnérabilités XXE

La défense la plus efficace contre le XXE est de désactiver le traitement des entités externes dans la configuration du parseur XML. En Java, cela signifie configurer des fonctionnalités comme disallow-doctype-decl et external-general-entities pour empêcher la résolution d'entités. La plupart des bibliothèques XML modernes utilisent par défaut des configurations sécurisées, mais le code ancien et certains frameworks activent encore des fonctionnalités dangereuses. La validation des entrées, l'utilisation de JSON au lieu de XML lorsque possible, et les tests de sécurité réguliers complètent le renforcement du parseur.

Ce que vous apprendrez

  • Comprendre le traitement des entités externes XML et comment les parseurs résolvent les références externes
  • Apprendre à créer des payloads XXE pour la divulgation de fichiers et les attaques SSRF
  • Maîtriser les techniques d'exfiltration de données hors bande quand la sortie directe n'est pas disponible
  • Reconnaître les différentes surfaces d'attaque où le XXE peut survenir au-delà des endpoints XML traditionnels
  • Développer des compétences pour tester et remédier aux vulnérabilités XXE dans les applications web

Prérequis

Basic understanding of XML structure and syntax Familiarity with HTTP and web applications Knowledge of Linux file system paths

Prêt à hacker ce lab ?

Créez un compte gratuit et pratiquez la cybersécurité.

Commencer - C'est gratuit
Commencez Votre Défi
~1-2 min de configuration
Serveur dédié
Instance privée
Puissance standard
Nouveau ? Voici comment faire
1
Cliquez sur "Start Lab" ci-dessus Vous obtiendrez votre propre machine avec une adresse IP
2
Explorez la cible Ouvrez l'IP dans votre navigateur et cherchez des vulnérabilités
3
Trouvez et soumettez les flags Les flags sont des textes secrets cachés dans le système - collez-les ci-dessous pour marquer des XP

Prêt à hacker ce lab?

Créez un compte gratuit pour démarrer votre propre serveur dédié, soumettre des flags et gagner des XP au classement.

Commencer à Hacker Gratuitement
13 000+ Hackers 100+ Labs & Cours Gratuit
Commencer Gratuitement