XXE via téléversement d'image malveillante

Exploiting XXE via image file upload

Exploiter une vulnérabilité XXE en envoyant une image (SVG) malveillante qui, lors du traitement par la bibliothèque Apache Batik, révèle le contenu d’un fichier local. L’exercice demande d’uploader un avatar SVG affichant le contenu de /etc/hostname puis de soumettre ce nom d’hôte comme solution.

Le site propose un formulaire d’ajout d’avatar pour les commentaires. En interceptant la requête d’upload, on constate que le fichier envoyé est ensuite analysé côté serveur par Apache Batik (traitement XML).

Créer un fichier SVG contenant une déclaration <!DOCTYPE> qui définit une entité externe pointant vers file:///etc/hostname, puis insérer cette entité dans le texte SVG de façon à ce que, une fois rendu/traité, le contenu du fichier soit injecté dans l’image affichée.

Après upload, l’affichage de l’avatar dans la section des commentaires montre que le serveur a interprété le SVG et rendu la valeur de l’entité — le contenu de /etc/hostname apparaît dans l’image, ce qui permet de récupérer le nom d’hôte et de soumettre la solution.

Mis à jour

Ce contenu vous a-t-il été utile ?