Linux Web App Attacks Scenario
Durée de l'examen de certification : 8 heures
Tous les cours et tous les modes sont disponibles avec formateur [Présentiel & Distanciel] et sans formateur [Autonomie].
MAIN
Ce scénario couvre les vulnérabilités d’applications web les plus répandues, listées dans l’OWASP Top Ten. Il est destiné en particulier aux développeurs back-end souhaitant se confronter aux mauvaises pratiques de code, à la gestion des dépendances et à des configurations en apparence correctes. Votre tâche est de trouver et corriger toutes les vulnérabilités, principalement dans le back-end de l’application, mais aussi dans la partie front-end et dans la configuration du serveur HTTP. Une aisance avec Python (le code) et les bases de l’administration Linux est recommandée.
Composants vulnérables — SwaggerUI
Les services web modernes s’appuient sur de nombreux composants externes (serveur HTTP, frameworks, bibliothèques). Chacun peut impacter la sécurité de l’organisation : une faille dans une dépendance expose l’application, même si son code a été audité. Dans ce court scénario, identifiez et supprimez l’entrée malveillante qui déclenche une vulnérabilité dans un logiciel tiers.
Exposition du jeton d’accès — durée de vie & emplacement
Les applications web utilisent souvent un jeton d’accès après authentification. Obtenir ce jeton permet d’agir au nom de l’utilisateur, d’où la nécessité de le protéger en stockage et en transit. Ici, l’implémentation est fragile : corrigez les failles qui provoquent la présence de jetons dans des emplacements externes (navigateur, journaux applicatifs, etc.).
Contrôle d’accès défaillant — Path traversal
Le path traversal permet d’accéder à des fichiers en dehors du répertoire prévu, souvent via « ../ ». Un serveur HTTP est ici mal configuré. Localisez la vulnérabilité et corrigez la configuration pour stopper les attaques en cours.
Contrôle d’accès défaillant — Routage non sécurisé
Certaines ressources sont accessibles sans authentification suite à une erreur de conception ou de développement. Détectez-les et appliquez l’authentification nécessaire.
Exposition de données sensibles
Les attaquants peuvent d’abord obtenir une liste d’identifiants valides (p. ex. via un formulaire de connexion verbeux) avant d’essayer de deviner les mots de passe. Reproduisez puis corrigez cette vulnérabilité pour empêcher la collecte d’identifiants dans l’application Inventory.
Affectation de masse (Mass assignment)
L’affectation de masse survient lorsque des paramètres reflétant une table sont passés directement au contrôleur sans validation. Un attaquant peut modifier des champs sensibles (p. ex. table users) et élever ses privilèges. Détectez et stoppez l’attaque en cours : un attaquant simulé a déjà deviné une colonne critique.
Injection SQL
L’injection SQL (OWASP Top 10) découle d’entrées non filtrées et permet d’exécuter des commandes SQL arbitraires, exfiltrer des données ou, parfois, exécuter des commandes système. Détectez et bloquez l’attaque en cours contre votre infrastructure.
XXE (entités externes XML)
Les parseurs XML peuvent résoudre des entités externes (souvent activé par défaut). Mal configuré et couplé à des entrées non fiables, cela permet de lire des fichiers locaux ou de provoquer un DoS. L’application est vulnérable à XXE : corrigez-la.
SSRF (Server-Side Request Forgery)
Une SSRF permet d’émettre des requêtes réseau depuis le serveur vulnérable vers des services internes souvent non protégés. Ici, la fonctionnalité de génération de PDF est vulnérable. Corrigez le code pour stopper les attaques SSRF en cours.
CSRF (Cross-Site Request Forgery)
Le CSRF vise à faire exécuter par la victime une requête HTTP prédéfinie (ajout/suppression d’utilisateur, changement de droits, etc.). Identifiez où la faille existe et corrigez-la. Le trou de sécurité est activement exploité par un attaquant de SkyNet.
XSS basé sur le DOM — injection JavaScript
L’objectif du XSS est d’exécuter du JavaScript arbitraire côté client. Dans le XSS basé sur le DOM, l’entrée utilisateur est reflétée directement (ex. barre de recherche, URL) sans passer par la base. Trouvez et corrigez le code front-end vulnérable.
Désérialisation non sécurisée
La désérialisation non sécurisée (OWASP Top 10) survient quand une chaîne contrôlée par l’utilisateur est transmise à une fonction de désérialisation, pouvant mener à l’exécution de code sur le serveur. Détectez et éliminez la vulnérabilité.
XSS stockée — en-tête CSP & injection JavaScript
La variante stockée enregistre d’abord l’entrée malveillante en base avant de l’afficher. Malgré les protections des frameworks modernes, un code non sensibilisé peut rester vulnérable. Corrigez le front-end pour empêcher le XSS stocké (pensez à la CSP).