Oui, Key Leaks
Flag: ECW{M4stery_Of_All_T3chniques_gg}
Challenge
Description
OuiKeyLeaks have been seized for publishing a bad article about drones!
Out of curiosity, can you help us pentesting this website ? Try retrieving the admin's password hash.
_Spoiler : It's going to take some escalation ! Have fun. _
Challenge made by:
Ce challenge tourne sur un docker et n'est pas disponible
Solution
Accèder au site
Pour accèder au site, il faut avoir le cookie magic_cookie=investigator. On le voit dans le code source du la page :

Retirer les pubs (confort)
Bon, c'est plutôt embêtant les popups toutes les 5 secondes.

Dans le fichier /js/ads.js, on trouve le cookie premium qu'il faut mettre à "true" pour empêcher cela.

XSS
Il y a une fonction de chat sur le site. Les messages reçus sont directement injectés dans l'HTML avec la l'attribut innerHTML. C'est là qu'on peut injecter des éléments qui seront interprétés et donc exécuter du JS.

Donc dès qu'un autre utilisateur se connecter, on leak ses cookies en envoyant le payload :

Maintenant on a le cookie : guid=51af8760-3cbf-4344-bcba-7f142d3157e7
On accède au panneau admin en cliquant sur le titre du site

Sur le panneau /admin, on peut voir les logs du serveur. On va les analyser avec un LLM pour aller plus vite.


Nouvel endpoint : /admin/notes.txt. Dessus on trouve une partie du code du serveur. Celle-ci est vulnérable.
Injection SQL
Pour utiliser la fonction donc on connaît le code, il faut aller sur /admin/api/user.php. On peut le voir dans les requêtes effectuées par le site et en comparant le retour obtenu avec ce que le code est censé nous renvoyer (un json contenant les infos du user).

On va l'injecter pour récupérer le nom de toutes les colonnes.
Et maintenant, go dump toute la table :
Le flag est dans le dernier user, dans la colonne password_hash.
Mis à jour