Défis Web et de cryptographie
Résoudre des casse-têtes courants du Web et de la cryptographie.
Défis Web et de cryptographie est une leçon Cyber Security Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cyber Security Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cyber Security Academy comprend 4 leçons au total.
Deux piliers : applications web et cryptographie
Les applications web et la cryptographie sont les deux points d'entrée les plus courants dans les CTF.
- Les défis d'applications web vous fournissent une application web en fonctionnement et vous demandent de trouver une faille dans sa gestion des saisies, de l'authentification ou de la confiance.
- Les défis de cryptographie vous fournissent un texte chiffré, un schéma et parfois du code source, puis vous demandent de retrouver le texte en clair ou une clé en exploitant une faille dans l'utilisation de la cryptographie.
Les deux formats récompensent une observation méthodique. Cette leçon présente les énigmes récurrentes de chacun.
Premier réflexe face à une cible web
Avant toute exploitation, cartographiez l'application. Consultez le code source, examinez les réponses et explorez le contenu dissimulé.
# Inspect raw response headers and body
curl -i http://target/
# Look for hidden paths the UI does not link to
gobuster dir -u http://target/ -w wordlist.txt
# Common files worth checking by hand
# /robots.txt /.git/ /backup.zip /adminInjection SQL
L'injection SQL se produit lorsque la saisie utilisateur est concaténée à une requête de base de données sans séparation entre le code et les données.
Un formulaire de connexion qui construit une requête comme SELECT * FROM users WHERE name='INPUT' peut être détourné par une saisie qui ferme la chaîne et modifie la logique :
# A classic auth-bypass payload supplied as the username
' OR '1'='1' --
# UNION-based extraction once the column count is known
' UNION SELECT username, password FROM users -- La véritable correction contre l'injection
Les CTF vous apprennent à casser les injections afin de savoir les défendre. La bonne défense consiste à utiliser des requêtes paramétrées (des instructions préparées), qui maintiennent entièrement les données utilisateur en dehors de la structure de la requête.
# Vulnerable: input becomes part of the SQL text
query = "SELECT * FROM users WHERE name='" + name + "'"
# Safe: input is bound as a parameter, never parsed as SQL
cursor.execute("SELECT * FROM users WHERE name = ?", (name,))Cross-Site Scripting (XSS)
Le XSS se produit lorsqu'une application réaffiche ou stocke une saisie contrôlée par l'attaquant et qu'un navigateur l'exécute comme un script. Dans un CTF, un défi XSS implique souvent un robot qui visite votre charge utile tout en conservant le drapeau dans un cookie.
- Réfléchi — la charge utile incluse dans la requête est renvoyée directement.
- Stocké — la charge utile est enregistrée et s'exécute pour les visiteurs suivants.
- Fondé sur le DOM — le JavaScript côté client écrit la saisie dans la page de manière dangereuse.
La défense consiste à encoder les sorties en fonction du contexte et à appliquer une politique de sécurité du contenu. Un test exploratoire comme <script>alert(1)</script> confirme si la saisie est échappée.
SSRF et traversée de répertoires
Voici deux autres incontournables du web :
- Server-Side Request Forgery (SSRF) — vous amenez le serveur à effectuer des requêtes à votre place, souvent vers des adresses accessibles uniquement en interne comme
http://127.0.0.1ou vers un service de métadonnées infonuagique, afin d'atteindre le drapeau. - Traversée de répertoires — vous sortez du répertoire prévu à l'aide de séquences comme
../pour lire des fichiers situés en dehors de la racine web, par exemple../../../../etc/passwd.
Ces deux attaques résultent de la confiance accordée à la saisie utilisateur pour choisir une ressource. Les défenses consistent à utiliser des listes d'autorisation strictes, puis à canonicaliser et valider les chemins avant leur utilisation.
L'encodage n'est pas du chiffrement
Le piège cryptographique le plus courant chez les débutants consiste à confondre encodage et chiffrement. L'encodage est réversible par n'importe qui, sans clé : il n'offre donc aucune confidentialité.
Apprenez à reconnaître les formats au premier regard :
- Base64 — des lettres, des chiffres,
+ /et souvent un remplissage avec=. - Hexadécimal — uniquement
0-9 a-f. - ROT13 / César — une structure lisible avec des lettres décalées.
# Decode base64
echo 'ZmxhZ3toZWxsb30=' | base64 -d
# Decode hex
echo '666c6167' | xxd -r -pChiffres classiques et XOR
De nombreux défis de cryptographie utilisent des chiffres historiques faibles ou des chiffres modernes mal conçus :
- César / Vigenère — des chiffres par décalage que l'on casse par analyse des fréquences ou en essayant les 25 décalages.
- XOR sur un seul octet — le message entier est soumis à XOR avec un seul octet : essayez par force brute les 256 clés et retenez la sortie lisible.
- XOR à clé répétée — on le casse en trouvant la longueur de la clé, puis en résolvant chaque octet de clé comme un XOR sur un seul octet.
La leçon à retenir : un chiffre personnalisé ou classique n'offre aucune véritable sécurité contre un analyste.
Pièges de RSA
RSA n'est sûr que lorsque ses paramètres sont correctement choisis. Les défis de cryptographie des CTF aiment vous fournir une instance défectueuse :
- Petit module — si
nest suffisamment petit, factorisez-le directement pour retrouver la clé privée. - Exposant minuscule, sans bourrage — avec
e=3et un message court, le texte chiffré peut être un cube parfait, récupérable par une racine cubique entière. - Facteurs communs — si deux clés publiques partagent un nombre premier, le plus grand commun diviseur de leurs modules le révèle instantanément.
Dans le monde réel, la défense consiste à utiliser une bibliothèque éprouvée avec de grandes clés et un bourrage approprié (OAEP), et à ne jamais implémenter soi-même son propre système.
Craquage de hachages
Lorsqu’un défi vous fournit le hachage d’un mot de passe, l’objectif est de retrouver la donnée d’origine. Vous ne pouvez pas inverser un hachage, mais vous pouvez essayer des entrées et les comparer.
# Identify the hash type first
hashid 5f4dcc3b5aa765d61d8327deb882cf99
# Dictionary attack with hashcat (mode 0 = raw MD5)
hashcat -m 0 hash.txt rockyou.txt
# John the Ripper alternative
john --wordlist=rockyou.txt hash.txtUne méthode reproductible
Reliez le tout au moyen d’une boucle cohérente pour les deux catégories :
- Observez — lisez l’énoncé, consultez le code source, identifiez l’encodage ou le schéma.
- Formulez une hypothèse — nommez la famille de vulnérabilités probable.
- Testez à petite échelle — envoyez une charge utile de sondage, observez la réponse exacte.
- Exploitez — transformez la sonde qui fonctionne en une charge utile complète permettant d’obtenir le drapeau.
- Documentez — notez la charge utile et le raisonnement tant qu’ils sont encore frais.
Cette boucle vous évite de vous perdre dans des fausses pistes et produit presque gratuitement un compte rendu.
Vérification rapide
Évaluez votre maîtrise des principes fondamentaux du Web et de la cryptographie.
Récapitulatif
Vous avez étudié les énigmes récurrentes du Web et de la cryptographie :
- Web : commencez par cartographier, puis recherchez une injection SQL, une vulnérabilité XSS, une SSRF et une traversée de chemin — chacune reposant sur une confiance excessive et dangereuse accordée aux entrées utilisateur, et chacune se corrigeant en séparant le code des données.
- Cryptographie : distinguez l’encodage du chiffrement, cassez les chiffres classiques et XOR, exploitez les erreurs de paramètres RSA et craquez les hachages avec des listes de mots.
- Une seule boucle observer, formuler une hypothèse, tester, exploiter, documenter fonctionne pour les deux.
Ensuite, vous passez à la rétro-ingénierie et à l’exploitation binaire.
Questions Fréquemment Posées
La leçon « Défis Web et de cryptographie » est-elle gratuite ?
Oui — le texte complet de « Défis Web et de cryptographie » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cyber Security Academy, passe à CoddyKit PRO. Le cours Cyber Security Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Défis Web et de cryptographie » ?
Résoudre des casse-têtes courants du Web et de la cryptographie. Tu pratiques Cyber Security Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Cyber Security Academy ?
Aucune expérience préalable n'est requise. Cyber Security Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Défis Web et de cryptographie » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Cyber Security Academy ?
Oui. Chaque leçon Cyber Security Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Catégories et état d’esprit des CTF
- Défis Web et de cryptographie
- Bases de l’ingénierie inverse et de l’exploitation binaire
- Outils et comptes rendus techniques