Learning path

Sécurité web : trouver et corriger les failles du Top 10 OWASP

  • 4 labs
  • 5 h 15 min
  • Beginner → Intermediate

Akwaba Market, la boutique en ligne de pagnes wax et d'artisanat de Madame Aya Koné, à Treichville, ouvre samedi. Le prestataire qui l'a montée est parti, et c'est vous qui devez la sécuriser. Quatre missions suivent les premiers jours de la boutique, chacune partie d'un problème signalé : un client développeur qui voit ce que le site laisse échapper, des robots qui essaient des mots de passe toute la nuit, une cliente qui tombe sur la facture d'une autre, un avis qui change la page chez tout le monde. À chaque fois, vous trouvez la cause, vous la corrigez, et vous vérifiez comme un inconnu que la porte est fermée. Le parcours couvre quatre catégories du Top 10 de l'OWASP 2025 (mauvaise configuration, authentification, contrôle d'accès, injection), toujours du côté de la défense, sur une sandbox qui vous appartient.

The steps

  1. Step 1
    BeginnerIn French

    Sécurité web avec nginx : fermer les fuites d'informations

    Abidjan, jeudi soir. Akwaba Market, la boutique en ligne de pagnes wax et d'artisanat de Madame Koné, à Treichville, ouvre samedi. Hier soir, un client développeur a prévenu en privé : une adresse de produit cassée affiche une page pleine de code avec le mot de passe de la base de données, un dossier de sauvegardes ouvert à tous livre les noms et les téléphones des clients, et le site annonce son logiciel et sa version à qui veut l'entendre. Vous regardez d'abord la boutique comme un inconnu la voit, avec curl et les outils de développement du navigateur, et vous notez ce qu'elle laisse échapper. Puis vous fermez les fuites une à une, par la configuration : nginx cesse d'annoncer sa version et retire l'en-tête de l'application ; le mode DEBUG passe à false, et la trace des erreurs part au journal, retrouvable par une référence ; le mot de passe divulgué est changé dans la base et dans l'application, dans le bon ordre, et le fichier qui le garde n'est plus lisible par tous ; les sauvegardes des clients quittent la racine du site, et nginx refuse désormais tout fichier caché, dépôt git compris. Vous vérifiez chaque correction comme un visiteur, vous lisez dans le journal les robots qui ont déjà frappé à la porte, et vous rédigez l'état de la surface d'attaque, avant et après. Premier atelier de la série sécurité web, sur la catégorie A02:2025 du Top 10 de l'OWASP : la mauvaise configuration. Tout se passe sur votre propre sandbox, une boutique fictive qui vous appartient le temps du lab.

    • No reviews yet
    • Beginner
    • 1 h 15 min
    • 500 credits
    • First lab free
  2. Step 2
    BeginnerIn French

    Sécurité web : comptes par défaut et stockage des mots de passe

    Abidjan, lundi matin. Akwaba Market a ouvert samedi, et cette nuit, plus de sept cents tentatives de connexion ont visé son espace gérante, venues d'une douzaine d'adresses. Didier, le client développeur, a prévenu : le manuel du logiciel de la boutique, en téléchargement libre, donne les identifiants installés par défaut. Vous allez lire l'attaque dans les journaux et vérifier, comme un inconnu, que le mot de passe du manuel ouvre bien la boutique. Vous découvrirez pourquoi des empreintes MD5 sans sel ne protègent rien, fermerez le compte générique, renouvellerez en PBKDF2 les mots de passe que Madame Koné et Fatou partageaient, et ferez ralentir par nginx les essais répétés. Une consigne de Madame Koné vous guide : personne d'autre qu'elle et Fatou ne doit entrer, et Fatou ne doit jamais être bloquée.

    • No reviews yet
    • Beginner
    • 1 h 20 min
    • 750 credits
    • First lab free
  3. Step 3
    GeneralIn French

    Sécurité web : contrôle d'accès et la facture du voisin

    Abidjan, mardi matin. Akwaba Market tourne depuis le week-end, et une cliente vient d'écrire à Madame Koné : hier soir, son fils regardait sa facture, a changé un chiffre dans l'adresse, et a vu celle d'un autre client, avec son nom, son téléphone et son adresse. Vous allez reproduire le problème sur des comptes de test, remonter à la ligne de code qui en est la cause (l'application sert une facture sans vérifier à qui elle appartient), corriger côté serveur, puis vérifier que chaque client ne voit plus que ses factures, que l'équipe les voit toujours toutes, et lire dans les journaux l'étendue de l'incident. C'est la faille la plus répandue des applications web, celle qu'un développeur débutant écrit sans y penser : confondre « être connecté » avec « avoir le droit de voir ceci ».

    • No reviews yet
    • Intermediate
    • 1 h 20 min
    • 1,000 credits
    • First lab free
  4. Step 4
    GeneralIn French

    Sécurité web : l'avis qui s'exécute et l'échappement

    Abidjan, mercredi matin. Les clients d'Akwaba Market laissent des avis sous les fiches produits. Depuis hier soir, la fiche du « Sac en pagne et cuir » affiche en titre « BOUTIQUE FERMÉE », et un avis renvoie vers un site concurrent. Personne n'a touché au code de la boutique. Vous allez lire ce que le serveur envoie vraiment au navigateur, remonter à la ligne qui insère le texte des avis sans précaution, ajouter l'échappement à l'affichage, poser une politique de sécurité du contenu (CSP) dans nginx en seconde barrière, puis masquer les deux avis en cause sans en supprimer aucun. C'est l'injection dans une page web (cross-site scripting), l'une des failles les plus répandues, et l'erreur classique d'un développeur qui affiche une saisie sans la traiter.

    • No reviews yet
    • Intermediate
    • 1 h 20 min
    • 1,000 credits
    • First lab free