← Retour au portfolio

Write-up · Sécurité applicative

OWASP Juice Shop — Audit de sécurité web

OWASP Top 10Kali LinuxBurp Suite8 vulnérabilités

Contexte : TP Bachelor Cybersécurité ESAIP · Stage Mongazon · Pratique personnelle

Date :

Résumé exécutif

Ce write-up présente huit scénarios représentatifs de faiblesses web étudiés sur OWASP Juice Shop, application volontairement vulnérable. Les tests couvrent l'injection, les failles XSS, les contrôles d'accès, l'authentification et la configuration HTTP. Ils sont destinés exclusivement à une instance locale ou à un environnement explicitement autorisé ; les constats et payloads peuvent varier selon la version de l'application.

Environnement technique

CibleOWASP Juice Shop — instance locale de laboratoire
SystèmeKali Linux
Proxy d'interceptionBurp Suite Community Edition
Outils complémentairesNavigateur web, curl, DevTools
PérimètreApplication web et endpoints exposés par l'instance locale

Méthodologie

  1. 1. Définir le périmètre

    Déployer OWASP Juice Shop en local et limiter les tests à cette application volontairement vulnérable.

  2. 2. Cartographier l'application

    Parcourir les fonctions, relever les routes et paramètres, puis observer les requêtes avec le proxy Burp Suite.

  3. 3. Vérifier les hypothèses

    Reproduire manuellement les scénarios dans le laboratoire Kali Linux et conserver les requêtes/réponses utiles comme preuves.

  4. 4. Évaluer et corriger

    Qualifier l'impact, associer les constats aux catégories OWASP Top 10 et proposer des mesures vérifiables.

Vulnérabilités observées

1. Injection SQL — contournement de l'authentification

Élevée

A03:2021 · Injection

Vecteur et outil : Formulaire de connexion · Burp Suite Repeater

' OR 1=1--

Impact : Une requête construite par concaténation peut être altérée pour contourner l'authentification et accéder à un compte sans connaître son mot de passe.

Remédiation : Utiliser des requêtes paramétrées, valider les entrées côté serveur et appliquer des tests de sécurité aux chemins d'authentification.

2. XSS réfléchie — exécution dans le navigateur

Moyenne

A03:2021 · Injection

Vecteur et outil : Paramètre de recherche · navigateur et Burp Suite

<iframe src="javascript:alert('XSS')">

Impact : Une valeur de recherche renvoyée sans encodage peut exécuter du JavaScript dans le contexte de l'application pour la personne qui ouvre le lien.

Remédiation : Encoder les sorties selon leur contexte, éviter les sinks DOM dangereux et déployer une Content Security Policy restrictive.

3. XSS persistante — contenu utilisateur non neutralisé

Élevée

A03:2021 · Injection

Vecteur et outil : Champ de retour/commentaire · Burp Suite

<iframe src="javascript:alert('XSS')">

Impact : Un contenu malveillant enregistré puis affiché peut s'exécuter pour chaque utilisateur consultant la page concernée.

Remédiation : Appliquer une validation serveur, encoder les contenus au rendu et utiliser une bibliothèque de sanitation HTML avec une liste d'autorisation.

4. IDOR — accès à un panier par identifiant

Élevée

A01:2021 · Contrôle d'accès défaillant

Vecteur et outil : Endpoint de panier · Burp Suite Repeater

GET /rest/basket/1 HTTP/1.1
Host: 127.0.0.1:3000
Authorization: Bearer <jeton_de_session>

Impact : Modifier un identifiant séquentiel peut exposer les données du panier d'un autre compte si le serveur ne vérifie pas sa propriété.

Remédiation : Vérifier côté serveur l'appartenance de chaque ressource à l'utilisateur authentifié et ne pas considérer un identifiant difficile à deviner comme une autorisation.

5. Fichier sensible accessible depuis le répertoire FTP

Moyenne

A01:2021 · Contrôle d'accès défaillant

Vecteur et outil : Répertoire de fichiers publié · navigateur / curl

curl -i http://127.0.0.1:3000/ftp/acquisitions.md

Impact : Un document interne placé dans un répertoire publiquement servi peut révéler des informations confidentielles sans authentification.

Remédiation : Retirer les documents sensibles des répertoires publics, appliquer des contrôles d'accès et vérifier les fichiers embarqués lors du déploiement.

6. Accès non autorisé à la section d'administration

Élevée

A01:2021 · Contrôle d'accès défaillant

Vecteur et outil : Route d'administration · navigateur

http://127.0.0.1:3000/#/administration

Impact : Si l'accès est contrôlé uniquement par l'interface, une personne peut atteindre une route privilégiée et consulter des fonctions d'administration.

Remédiation : Appliquer une autorisation vérifiée côté serveur sur chaque route et opération privilégiée ; masquer un lien dans l'interface ne constitue pas un contrôle d'accès.

7. Réinitialisation de mot de passe fondée sur une réponse devinable

Élevée

A07:2021 · Identification et authentification

Vecteur et outil : Formulaire de mot de passe oublié · proxy Burp Suite

1. Ouvrir « Mot de passe oublié » dans l'instance locale.
2. Intercepter la requête avec Burp Suite.
3. Vérifier si la réponse secrète est publique, triviale ou devinable.

Impact : Une réponse de sécurité issue d'informations publiques ou faciles à deviner peut permettre la prise de contrôle du compte.

Remédiation : Remplacer les questions secrètes par des jetons aléatoires à usage unique, expirables et transmis par un canal vérifié ; limiter les tentatives.

8. En-têtes de sécurité HTTP à renforcer

Moyenne

A05:2021 · Mauvaise configuration de sécurité

Vecteur et outil : Réponse HTTP · curl et inspection Burp Suite

curl -sSI http://127.0.0.1:3000/

Impact : L'absence ou la faiblesse de certains en-têtes réduit les protections du navigateur contre les contenus injectés, le framing abusif et les interprétations MIME inattendues.

Remédiation : Configurer et vérifier une CSP adaptée, X-Content-Type-Options: nosniff, une politique de framing restrictive et Strict-Transport-Security en HTTPS.

Tableau de synthèse

#ConstatOWASPSévérité
1Injection SQL — authentificationA03Élevée
2XSS réfléchieA03Moyenne
3XSS persistanteA03Élevée
4IDOR — panierA01Élevée
5Exposition d'un documentA01Moyenne
6Section d'administrationA01Élevée
7Réinitialisation de mot de passeA07Élevée
8En-têtes HTTPA05Moyenne

Recommandations générales

  • Utiliser des requêtes paramétrées et une validation des données côté serveur.
  • Encoder les sorties, assainir les contenus HTML et adopter une CSP restrictive.
  • Appliquer le contrôle d'accès à chaque requête et vérifier la propriété des objets.
  • Protéger le parcours de récupération de compte avec des jetons aléatoires, expirables et à usage unique.
  • Sortir les fichiers sensibles du répertoire public et limiter les informations renvoyées par les endpoints.
  • Configurer les en-têtes de sécurité, journaliser les événements utiles et retester les corrections.

Note : OWASP Juice Shop est une cible d'entraînement. Ne reproduisez ces tests que sur votre instance de laboratoire ou avec une autorisation explicite.