OWASP Juice Shop : le terrain de jeu volontairement vulnérable qui se prend au sérieux
OWASP Juice Shop : Probablement l’application Web non sécurisée la plus moderne et la plus sophistiquée.
En bref
- De quoi s’agit-il ?
- OWASP Juice Shop est une application web volontairement vulnérable, écrite en TypeScript, qui couvre l'ensemble de l'OWASP Top Ten. Cet article détaille son mécanisme, son installation, ses limites et ce qui le distingue des autres cibles d'entraînement.
- À qui s’adresse-t-il ?
- OWASP Juice Shop s'adresse aux formateurs en sécurité, aux organisateurs de CTF et aux développeurs qui veulent tester des outils de scan. Il ne convient pas à ceux qui cherchent une application simple ou qui veulent éviter les dépendances externes, car certains défis exigent un fournisseur d'IA.
- Puis-je l’utiliser commercialement ?
- Oui. MIT est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
- Est-il encore maintenu ?
- Oui. Les derniers commits datent d’il y a 1 jour.
- En quel langage est-il écrit ?
- Principalement TypeScript, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Un problème précis : des vulnérabilités sans risque légal
Les formateurs en sécurité butent sur un obstacle récurrent : où trouver une application qui contient vraiment des failles, sans enfreindre la loi ni mettre en danger un système réel. Juice Shop répond à ce besoin. C'est une application web volontairement vulnérable, conçue pour les formations, les démonstrations de sensibilisation, les CTF et les tests d'outils de sécurité. Elle couvre l'intégralité de l'OWASP Top Ten, plus d'autres failles issues du monde réel. Le projet se revendique comme « probably the most modern and sophisticated insecure web application ». Cette sophistication n'est pas un simple argument marketing : elle se traduit par une architecture complète, un catalogue de défis variés et une mise à jour régulière. Pour qui ? Les formateurs, les étudiants en cybersécurité, les développeurs curieux, et les équipes qui évaluent des scanners de vulnérabilités. Si vous cherchez une application réaliste pour vous entraîner, c'est une cible de choix.
Le mécanisme : une boutique en ligne truffée de pièges
Juice Shop se présente comme une boutique en ligne de jus, avec des produits, des comptes utilisateurs, des avis et un système de paiement. Sous cette surface anodine, chaque fonctionnalité cache une vulnérabilité exploitable. Le projet est écrit en TypeScript, ce qui le rend plus lisible pour les développeurs qui veulent examiner le code source. L'architecture suit celle d'une application web classique : un front-end, une API, une base de données SQLite. Les vulnérabilités sont réparties dans les différentes couches. Certaines exigent des manipulations côté client, d'autres une injection SQL, d'autres encore une exploitation de la logique métier. Le documentation mentionne aussi que certains défis nécessitent un fournisseur d'IA ou de LLM pour fonctionner correctement. C'est un point intéressant : cela reflète l'évolution des attaques modernes, mais cela ajoute une dépendance externe que l'utilisateur doit configurer. Le projet fournit un guide pour configurer des fournisseurs d'IA locaux ou cloud, ce qui montre que la complexité est assumée.
Installation : quatre chemins, une même porte d'entrée
Le README propose quatre méthodes d'installation. La plus simple reste Docker : `docker pull bkimminich/juice-shop`, puis `docker run --rm -p 127.0.0.1:3000:3000 bkimminich/juice-shop`. Vous accédez ensuite à http://localhost:3000. Pour ceux qui préfèrent les sources, il faut Node.js (versions 24.x ou 26.x officiellement supportées), puis `git clone https://github.com/juice-shop/juice-shop.git --depth 1`, `cd juice-shop`, `npm install`, `npm start`. L'application écoute sur le port 3000. Les distributions packagées existent pour Windows, macOS et Linux, avec des binaires précompilés pour sqlite3 et libxmljs2. Enfin, Vagrant est proposé avec une machine virtuelle accessible sur 192.168.56.110. Chaque méthode aboutit à la même application, ce qui est pratique pour tester. La commande Docker lie le port sur 127.0.0.1, une précaution utile puisque l'application est vulnérable par conception.
Les limites : quand Juice Shop n'est pas le bon outil
Juice Shop a des limites qu'il faut connaître avant de l'adopter. D'abord, sa sophistication même peut rebuter les débutants. Un formateur qui veut illustrer une seule faille simple trouvera une application surchargée de fonctionnalités. Ensuite, les défis liés à l'IA nécessitent une configuration externe. Sans fournisseur d'IA, certains défis sont simplement inaccessibles. C'est un frein si vous travaillez dans un environnement hors ligne ou avec des restrictions de cloud. Enfin, le projet est une cible d'entraînement, pas une application de production. Le lancer sur un réseau non isolé expose votre machine à des attaques réelles. La démo officielle, demo.owasp-juice.shop, est explicitement réservée à un usage de test, et le README prévient qu'il ne faut pas l'utiliser pour vos propres expérimentations. C'est une limite claire, mais parfois oubliée dans la précipitation.
Alternatives : comparer avec d'autres applications vulnérables
Juice Shop n'est pas la seule application vulnérable sur le marché. DVWA (Damn Vulnerable Web Application) est une alternative plus ancienne, écrite en PHP, qui se concentre sur les failles classiques avec des niveaux de difficulté progressifs. Son approche est plus simple : chaque vulnérabilité est isolée dans une page dédiée, ce qui facilite l'apprentissage pas à pas. Juice Shop, lui, intègre les failles dans un scénario de boutique réaliste, ce qui est plus proche d'une vraie application mais plus difficile à analyser pour un débutant. Une autre différence tient à la modernité : Juice Shop couvre des vulnérabilités récentes, comme celles liées aux API ou aux LLM, là où DVWA reste sur des fondamentaux. Le choix dépend de l'objectif : DVWA pour une introduction structurée, Juice Shop pour une simulation réaliste et des défis plus variés. Les deux sont open source, mais Juice Shop est écrit en TypeScript, ce qui peut être un avantage si votre équipe maîtrise cet écosystème.
Maintenance et licence : un projet actif sous MIT
Le dépôt montre une activité récente : la dernière version, v20.2.0, date du 10 août 2026. Les versions précédentes, v20.1.1 et v20.1.0, datent de juin 2026. Cela indique un rythme de publication soutenu, ce qui est bon signe pour la prise en compte des nouvelles failles et des évolutions de Node.js. Le projet est sous licence MIT, une licence permissive qui autorise l'utilisation, la modification et la redistribution, même dans des projets commerciaux. C'est un avantage pour les entreprises qui veulent intégrer Juice Shop dans leurs formations internes. Cependant, la maintenance a un coût : il faut suivre les mises à jour, vérifier la compatibilité Node.js (les versions 25.x ne sont pas testées, par exemple), et gérer les dépendances comme sqlite3 et libxmljs2. Les distributions packagées incluent des binaires liés à l'OS et à la version de Node.js, donc une mise à jour de l'un ou l'autre peut casser votre installation. Le projet est archivé non, ce qui confirme qu'il est toujours maintenu.
Ce que le README ne dit pas : les zones d'ombre
Le README est bien fourni, mais il reste des zones d'ombre. Par exemple, il ne précise pas comment configurer les fournisseurs d'IA dans le détail, renvoyant à une documentation externe. Si vous travaillez avec des contraintes de réseau, vous devrez chercher cette information ailleurs. De plus, le README mentionne des tests via Cypress et une intégration continue, mais il ne donne pas de métriques de performance. Impossible de savoir si l'application est légère ou gourmande en ressources. Pour un usage en formation avec de nombreux participants, cela peut être un problème. Enfin, le projet est ouvert aux contributions, ce qui est bien, mais cela signifie que la qualité du code peut varier selon les modules. En tant qu'éditeur, je préfère signaler ces incertitudes plutôt que de les ignorer. Si vous avez besoin d'une application vulnérable avec un support clair et des prérequis précis, vérifiez la documentation complète avant de vous engager.
Conclusion éditoriale
OWASP Juice Shop s'adresse aux formateurs en sécurité, aux organisateurs de CTF et aux développeurs qui veulent tester des outils de scan. Il ne convient pas à ceux qui cherchent une application simple ou qui veulent éviter les dépendances externes, car certains défis exigent un fournisseur d'IA. Avant de l'adopter, vérifiez la compatibilité de votre version de Node.js (24.x ou 26.x recommandées) et prévoyez un environnement isolé, car l'application est volontairement vulnérable. Si vous l'utilisez en production, même pour un test, vous prenez un risque inutile. Sa maintenance est régulière, avec des versions récentes en 2026, mais le projet reste un outil d'apprentissage, pas un logiciel de production.
Notes de la communauté