Retour à l’Académie

CLR-6 · Lab pratique · Facile ·environ 40 min

Monte ton propre terrain d’entraînement

Déploie sur ta machine une app web volontairement vulnérable avec Docker, lance un scan de base automatisé avec OWASP ZAP et apprends à lire le rapport. Les deux gestes quotidiens derrière l’évaluation et la détection.

La mission

Arrivé au CLR-6, le plus sûr moyen de continuer à progresser, c’est de s’entraîner sur une cible qu’on contrôle. Ce lab en construit une : une app web volontairement vulnérable qui tourne uniquement sur ta machine, et un scanner automatisé pour la sonder. Aucun serveur partagé, aucun risque pour les autres.

Règles d’engagement. À faire uniquement sur un ordinateur qui t’appartient. Ne pointe jamais Juice Shop ni le scanner vers un système que tu ne possèdes pas et pour lequel tu n’as pas d’autorisation explicite. Le montage garde l’app liée à localhost.

Il te faut : Docker (Docker Desktop sur Windows/macOS, ou Docker Engine sur Linux).

1. Récupère les fichiers

docker-compose.yml · README.md

Le fichier compose tient en quelques lignes :

services:
  juice-shop:
    image: bkimminich/juice-shop:v20.3.0
    container_name: zenaro-juice-shop
    ports:
      - "127.0.0.1:3000:3000"
    restart: unless-stopped

2. Démarre l’app

Dans le dossier qui contient le fichier compose :

docker compose up

Attends Server listening on port 3000, puis ouvre-la dans ton navigateur. Ta première tâche dans Juice Shop est de trouver son Score Board caché, qui liste les défis d’entraînement.

3. Scanne-la avec OWASP ZAP

Lance le scan baseline prêt à l’emploi (passif et rapide) depuis l’image ZAP :

docker run --rm --network host ghcr.io/zaproxy/zaproxy:stable \
  zap-baseline.py -t http://localhost:3000

Sur macOS/Windows, remplace la cible par http://host.docker.internal:3000. Le scan se termine par une ligne du type FAIL: 0 WARN: 4 IGNORE: 0 PASS: 22, et chaque constat au-dessus nomme une règle et les URL concernées.

On répond aux quatre questions ci-dessous en faisant les trois étapes. Le README.md donne tous les détails et la commande de nettoyage.

Questions

  1. Après docker compose up, sur quel port TCP Juice Shop écoute-t-il (et que tu ouvres dans le navigateur) ?25 XP

    1. OWASP ZAP fournit plusieurs scans prêts à l’emploi. Quel nom de script lance le scan *baseline* (rapide et passif) depuis l’image Docker de ZAP ?25 XP

      1. Juice Shop a une page cachée qui suit les défis d’entraînement. Quelle est sa route (la partie de l’URL après l’hôte) ?25 XP

        1. Le scan baseline de ZAP se termine par un résumé de quatre compteurs (FAIL, WARN, IGNORE, PASS). Lequel marque une règle qui a dépassé le seuil configuré et à examiner en premier ?25 XP