🛡️ Red Flags en Cybersécurité

Challenges Kids - Partie 1 : Web (Défis 1 à 8)

📋 Introduction

Ce site présente notre travail sur l'identification des Red Flags en cybersécurité, réalisé dans le cadre des Challenges Kids. Un Red Flag est un indice révélant une faille de sécurité ou une pratique à risque sur un site internet.

Objectifs :

🎯 Les Défis (1 à 8)

Défi 1

Inspection du Code Source

🚩 RED FLAG Faille identifiée : Commentaires sensibles dans le code source HTML
Localisation : Commentaires HTML visibles via l'inspecteur (F12)
🔍 MÉTHODE Outils utilisés : Inspecteur de navigateur (DevTools)
Démarche :
  • Clic droit > "Inspecter" ou touche F12
  • Rechercher les commentaires HTML (<!-- ... -->)
  • Identifier les informations sensibles
⚠️ RISQUE En contexte professionnel : Les développeurs laissent parfois des informations sensibles (mots de passe, clés API, TODOs) dans les commentaires HTML. Ces informations sont accessibles à tous les utilisateurs.
✅ SOLUTION Mesure Blue Team : Supprimer tous les commentaires sensibles avant la mise en production. Utiliser des variables d'environnement pour les secrets. Mettre en place un processus de revue de code.
Défi 2

Décodage Base64

🚩 RED FLAG Faille identifiée : Utilisation de Base64 pour "protéger" des données sensibles
Localisation : Messages encodés en Base64 dans le code source
🔍 MÉTHODE Outils utilisés : CyberChef, décodeur Base64 en ligne
Démarche :
  • Identifier une chaîne en Base64 (caractères alphanumériques + = à la fin)
  • Utiliser CyberChef avec la recette "From Base64"
  • Décoder et lire le message en clair
⚠️ RISQUE En contexte professionnel : Base64 n'est PAS un chiffrement ! C'est un simple encodage facilement réversible. Utiliser Base64 pour "cacher" des mots de passe ou tokens est inefficace et dangereux.
✅ SOLUTION Mesure Blue Team : Utiliser de vrais algorithmes de chiffrement (AES-256, RSA). Ne jamais confondre encodage et chiffrement. Implémenter un système de gestion des secrets sécurisé.
Défi 3

Paramètres URL (GET)

🚩 RED FLAG Faille identifiée : Données sensibles transmises via les paramètres GET dans l'URL
Localisation : Barre d'adresse du navigateur (?param=valeur)
🔍 MÉTHODE Outils utilisés : Observation de l'URL, inspecteur réseau
Démarche :
  • Observer la barre d'adresse après une action
  • Identifier les paramètres GET (?key=value)
  • Analyser les informations exposées
⚠️ RISQUE En contexte professionnel : Les URLs sont enregistrées dans l'historique du navigateur, les logs serveur, et peuvent être interceptées. Transmettre des mots de passe ou tokens via GET est une faille critique.
✅ SOLUTION Mesure Blue Team : Utiliser POST pour les données sensibles. Implémenter HTTPS obligatoire. Utiliser des tokens de session sécurisés avec HttpOnly et Secure flags. Ne jamais passer de credentials en URL.
Défi 4

Cookies Non Sécurisés

🚩 RED FLAG Faille identifiée : Cookies stockant des données sensibles en clair, sans attributs de sécurité
Localisation : DevTools > Application/Storage > Cookies
🔍 MÉTHODE Outils utilisés : Inspecteur (DevTools) > onglet Application
Démarche :
  • Ouvrir DevTools (F12)
  • Aller dans Application > Cookies
  • Examiner les cookies, leurs valeurs et attributs
⚠️ RISQUE En contexte professionnel : Les cookies sans attributs Secure, HttpOnly et SameSite sont vulnérables aux attaques XSS (vol de session) et CSRF. Les données peuvent être interceptées ou manipulées.
✅ SOLUTION Mesure Blue Team : Toujours utiliser les flags Secure (HTTPS uniquement), HttpOnly (pas accessible en JavaScript), et SameSite (protection CSRF). Chiffrer les données sensibles dans les cookies.
Défi 5

Console JavaScript

🚩 RED FLAG Faille identifiée : Logs de debug contenant des informations sensibles laissés en production
Localisation : Console JavaScript (F12 > Console)
🔍 MÉTHODE Outils utilisés : Console JavaScript du navigateur
Démarche :
  • Ouvrir la Console (F12 > onglet Console)
  • Observer les messages console.log()
  • Identifier les données sensibles exposées
⚠️ RISQUE En contexte professionnel : Les console.log() en production peuvent exposer des données utilisateur, tokens d'authentification, requêtes API complètes, structure de la base de données, etc. Tout est visible par les utilisateurs.
✅ SOLUTION Mesure Blue Team : Supprimer tous les console.log() avant déploiement. Utiliser des outils de logging côté serveur avec contrôle d'accès. Activer le mode production qui désactive automatiquement les logs.
Défi 6

Chiffrement Faible (ROT13)

🚩 RED FLAG Faille identifiée : Utilisation d'algorithmes de chiffrement obsolètes ou faibles (ROT13, Caesar)
Localisation : Messages chiffrés avec des méthodes anciennes
🔍 MÉTHODE Outils utilisés : CyberChef (recette ROT13), décodeurs en ligne
Démarche :
  • Identifier un chiffrement par substitution (lettres remplacées)
  • Tester ROT13 dans CyberChef
  • Décoder le message en clair
⚠️ RISQUE En contexte professionnel : ROT13 et autres chiffrements par substitution simple sont cassables instantanément. Aucune protection réelle des données. Un attaquant peut lire toutes les informations "protégées".
✅ SOLUTION Mesure Blue Team : Utiliser des algorithmes modernes et éprouvés : AES-256 pour le chiffrement symétrique, RSA-2048+ pour l'asymétrique. Suivre les recommandations NIST/ANSSI.
Défi 7

Éléments HTML Cachés

🚩 RED FLAG Faille identifiée : Données sensibles "cachées" uniquement avec CSS (display: none, visibility: hidden)
Localisation : Code HTML avec styles CSS de masquage
🔍 MÉTHODE Outils utilisés : Inspecteur de navigateur
Démarche :
  • Inspecter le code HTML de la page (F12)
  • Chercher des éléments avec display:none ou hidden
  • Lire le contenu des éléments masqués
⚠️ RISQUE En contexte professionnel : Cacher des éléments avec CSS ne les supprime pas du DOM ! Ils restent accessibles via l'inspecteur. Ne jamais "cacher" des secrets, données utilisateurs, ou fonctionnalités admin ainsi.
✅ SOLUTION Mesure Blue Team : Ne jamais envoyer de données sensibles au client si elles ne doivent pas être vues. Gérer les permissions et l'accès côté serveur uniquement. Principe du moindre privilège.
Défi 8

Code JavaScript Exposé

🚩 RED FLAG Faille identifiée : Secrets ou clés API stockés directement dans le code JavaScript client
Localisation : Fichiers .js ou balises <script> dans le code source
🔍 MÉTHODE Outils utilisés : Afficher le code source (Ctrl+U), inspecteur > Sources
Démarche :
  • Afficher le code source de la page
  • Examiner les fichiers JavaScript
  • Rechercher des variables contenant des secrets
⚠️ RISQUE En contexte professionnel : Tout le code JavaScript est téléchargé et lisible côté client, même minifié. Stocker des clés API, tokens, ou secrets dans le JS expose ces informations à tous les utilisateurs et bots.
✅ SOLUTION Mesure Blue Team : Gérer les secrets côté serveur uniquement. Utiliser des variables d'environnement. Pour les API publiques, utiliser des restrictions par domaine/IP, rate limiting, et des API keys avec scopes limités.

🎮 CTF Interactif

Teste tes compétences ! Résous chaque défi pour débloquer le suivant. 🚀

Progression : 0 / 8 défis complétés
0%

🛠️ Aide & Outils Utilisés

🔍 Inspecteur de navigateur (DevTools)

Rôle : Examiner le code source HTML, CSS, JavaScript d'une page web.

Fonctionnement : Clic droit > "Inspecter" ou F12. Permet de voir les requêtes réseau, les cookies, le code source.

Utilisation : Identifier des commentaires cachés, des scripts malveillants, des données sensibles exposées.

🔐 CyberChef

Rôle : Outil de décodage/encodage et manipulation de données.

Fonctionnement : Interface web permettant d'appliquer différentes "recettes" (Base64, ROT13, hachage, etc.).

Utilisation : Décoder des messages cachés, analyser des hash, convertir des formats.

Lien : CyberChef Challenges Kids

🌐 Analyse d'URL

Rôle : Examiner la structure d'une URL pour repérer des anomalies.

Fonctionnement : Vérifier le protocole (http/https), le domaine, les paramètres GET.

Utilisation : Détecter des tentatives de phishing, des injections SQL dans les paramètres.

📝 Analyse du code source

Rôle : Lire le code HTML/JS pour identifier des failles.

Fonctionnement : Ctrl+U ou clic droit > "Afficher le code source".

Utilisation : Trouver des commentaires de développeurs, des mots de passe en clair, des scripts vulnérables.

🍪 Cookies et stockage local

Rôle : Examiner les données stockées côté client.

Fonctionnement : DevTools > Application/Storage > Cookies/Local Storage.

Utilisation : Identifier des tokens non sécurisés, des sessions vulnérables.

📚 Ressources supplémentaires

🎓 Conclusion

À travers ces 8 défis, nous avons appris à :

Leçon principale : La cybersécurité n'est pas seulement technique - c'est aussi une question de méthodologie, de vigilance et de compréhension des risques humains.

🔓 Panel Admin - Tous les Flags

Liste complète des flags pour validation :

Défi Titre Flag Action
Défi 1 Inspection du Code Source FLAG{1nsp3ct_th3_s0urc3_c0d3}
Défi 2 Décodage Base64 FLAG{b4s364_1s_n0t_s3cur1ty}
Défi 3 URL Parameters FLAG{url_p4r4m3t3rs_4r3_v1s1bl3}
Défi 4 Cookies Non Sécurisés FLAG{c00k13s_4r3_n0t_s4f3}
Défi 5 Console JavaScript FLAG{c0ns0l3_l0gs_l34k_d4t4}
Défi 6 ROT13 Cipher FLAG{r0t13_is_too_weak}
Défi 7 Hidden Div FLAG{h1dd3n_3l3m3nts_4r3_v1s1bl3}
Défi 8 JavaScript Source Code FLAG{j4v4scr1pt_1s_publ1c}
⚠️ Attention : Ces informations sont réservées au staff uniquement. Ne pas partager les flags avec les participants !