Web Security Academy

XML external entity - Lab : Exploiting XXE using external entities to retrieve files

Objectif :

  • Récupérer le contenu du fichier /etc/passwd sur le serveur distant.

Solution :

On lance le lab et on se retrouve sur un site de commerce avec plusieurs articles affichés :

On accède au détail d'un objet quelconque. En bas de la page, on peut vérifier le stock du produit dans différentes villes :

On clique sur "Check stock" et on observe les requêtes émises vers le serveur :

C'est une requête POST prenant en charge une donnée au format XML.

On va tenter de XXE classique en définissant une DTD avec le mot DOCTYPE pour récupérer le contenu du fichier /etc/passwd :

Le serveur nous retourne le contenu du fichier. Aucune mesure de sécurité n'est mise en place :

Le lab est désormais validé.