TP Sécurité : la série OWASP
Sommaire
Le meilleur moyen de comprendre la sécurisation d'une application Web, ce n'est ni la théorie seule, ni de tenter des intrusions au hasard : c'est de se mettre dans la peau du développeur qui reçoit un rapport d'audit et doit réparer son code.
Cette série de quatre TP suit les grandes catégories de failles de l'OWASP, celles que vous devez savoir reconnaître et corriger pour l'examen. Le format est toujours le même, dans l'esprit d'une préparation à l'épreuve : observer du code, le tester, comprendre pourquoi il est vulnérable, puis le corriger.
Les quatre TP
La difficulté augmente d'un TP à l'autre. Suivez-les dans l'ordre : chacun s'appuie sur le précédent.
- Les injections SQL : la faille la plus emblématique, très guidée pour bien démarrer.
- Les failles XSS : quand le navigateur exécute la saisie de l'utilisateur (réfléchi et stocké).
- Contrôle d'accès et journalisation : IDOR, routes non protégées, lecture des logs (code Laravel).
- Authentification et sessions : mots de passe, bruteforce, CSRF, 2FA. Le plus complet, solutions détaillées.
Pour réviser et aller plus loin
- Révisions examen : une sélection d'extraits de code à analyser, dans le même esprit que l'épreuve.
- Exercices OWASP (banque de failles) : une quinzaine de failles à identifier et corriger, dans le rôle du développeur qui répond à un audit.
- Analyser une application : un TP avancé de reverse engineering sur une vraie application Android (pour les plus rapides).
Le cours et la synthèse
Avant ou pendant les TP, gardez sous la main :
Pour s'entraîner en autonomie
Deux plateformes interactives complètent parfaitement ces TP, si vous voulez manipuler davantage :
- Hacksplaining : des tutoriels guidés faille par faille (injection SQL, XSS stockée…).
- WebGoat : l'application d'entraînement de l'OWASP, à lancer en local.
Lancer WebGoat en local (Docker)
WebGoat est une application volontairement vulnérable, éditée par l'OWASP à des fins pédagogiques.
docker run -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 -e TZ=Europe/Amsterdam webgoat/webgoatPuis rendez-vous sur http://127.0.0.1:8080/WebGoat.
⚠️ Vous manipulez un outil truffé de failles : pour éviter tout risque, le mieux est de couper l'accès réseau de votre machine pendant l'exercice.
Quelques leçons intéressantes pour commencer : Injection Flaws (SQL Injection), Cross-Site Scripting, Parameter Tampering, AJAX Security.
Un rappel important
Ces TP sont à but éducatif. On ne teste ces techniques que sur des applications prévues pour (WebGoat, Hacksplaining, les extraits fournis) ou que l'on possède. Tester une faille sur un site sans autorisation explicite est illégal.