Skip to main content

Free 30-min security demo Book Now

Offensive360 Offensive360
Application Security

What Is OWASP Juice Shop? Setup, Challenges & Use Cases

OWASP Juice Shop explained: what it is, why it exists, 100+ challenges across the OWASP Top 10, and how to run it in 60 s with Docker. Free & open source.

Offensive360 Security Research Team — min read
OWASP Juice Shop juice shop owasp juice shop juice shop owasp what is owasp juice shop vulnerable web application intentionally vulnerable web application security training web application security bkimminich juice shop juice shop docker juice shop setup juice shop challenges DAST benchmarking web security practice

OWASP Juice Shop is a deliberately vulnerable web application — a realistic, modern e-commerce site intentionally built with over 100 security vulnerabilities so that developers, security engineers, and penetration testers can practice finding and exploiting them in a safe, legal environment.

It is the most widely used intentionally vulnerable web application in the global security community, maintained by the OWASP Foundation and originally created by Björn Kimminich.

This article explains what Juice Shop is, why it exists, what makes it different from older vulnerable applications, and how to run it right now.


What Is OWASP Juice Shop, Exactly?

Juice Shop simulates a real online juice store — complete with products, a shopping cart, user accounts, an admin panel, and a REST API. The application looks and behaves like a legitimate e-commerce site. Under the hood, every component contains security vulnerabilities that you are invited to find and exploit.

Unlike older vulnerable applications (DVWA, WebGoat) that feel like security labs, Juice Shop looks like a real production application. Its modern architecture — Angular SPA on the frontend, Node.js/Express on the backend, JWT for authentication, a REST API — mirrors the tech stack of real-world web applications.

Key facts about OWASP Juice Shop:

PropertyDetail
Maintained byOWASP Foundation + Björn Kimminich
Source codegithub.com/juice-shop/juice-shop
LicenseMIT (free, open source)
Challenges100+ across 6 difficulty levels
Docker imagebkimminich/juice-shop
ArchitectureAngular + Node.js + Express + SQLite + JWT
First released2014

How to Start OWASP Juice Shop in 60 Seconds

The fastest way to run Juice Shop is with Docker:

docker run --rm -p 3000:3000 bkimminich/juice-shop

Open http://localhost:3000/ in your browser. That’s it — you now have a fully operational vulnerable e-commerce application ready to test against.

To access the scoreboard (which shows all 100+ challenges):

http://localhost:3000/#/score-board

Finding the scoreboard itself is the first Juice Shop challenge — it’s not linked from the navigation.

No Docker? Run from Source

git clone https://github.com/juice-shop/juice-shop.git
cd juice-shop
npm install
npm start
# Open http://localhost:3000/

What Makes Juice Shop Different from DVWA and WebGoat?

DVWA (Damn Vulnerable Web Application) is a PHP/MySQL application — useful for PHP SAST benchmarking and teaching SQL injection fundamentals, but architecturally outdated.

WebGoat is a Java application with a structured lesson format — useful for Java SAST benchmarking and guided learning.

Juice Shop is different in three important ways:

1. Modern architecture. Juice Shop’s Angular SPA + REST API + JWT authentication is representative of how real web applications are built today. If you can find SQL injection in a legacy PHP app, you still need to practice finding the same class of vulnerability in a modern SPA architecture.

2. Challenge system with 100+ challenges. The built-in scoreboard tracks your progress across every category of the OWASP Top 10. One-star challenges are accessible to beginners. Six-star challenges require expert-level knowledge of the application internals.

3. CTF support. Juice Shop includes built-in CTF mode — making it suitable for competitive team training events, not just individual practice.


What Vulnerabilities Does Juice Shop Cover?

Juice Shop includes vulnerabilities from every category of the OWASP Top 10:

OWASP CategoryJuice Shop Examples
A01 — Broken Access ControlIDOR (accessing other users’ baskets), hidden admin section
A02 — Cryptographic FailuresWeak JWT secrets, insecure cookie configuration
A03 — InjectionSQL injection in login, NoSQL injection, Log injection
A04 — Insecure DesignBusiness logic flaws (negative cart quantities)
A05 — Security MisconfigurationMissing security headers, CORS misconfiguration, verbose errors
A06 — Vulnerable ComponentsOutdated npm dependencies with known CVEs
A07 — Auth FailuresPassword brute force, JWT algorithm confusion (RS256 → HS256)
A08 — Software IntegrityInsecure deserialization (coupon codes)
A09 — Logging FailuresLog injection, insufficient monitoring
A10 — SSRFServer-Side Request Forgery via URL inputs

Beyond the OWASP Top 10, Juice Shop includes XSS (reflected, stored, and DOM-based), XXE injection, path traversal, and dozens of application logic flaws.


The Juice Shop Scoreboard

The scoreboard at /#/score-board is your mission control. It lists every available challenge, organized by:

  • Difficulty: ⭐ (beginner) to ⭐⭐⭐⭐⭐⭐ (expert)
  • Category: Injection, XSS, Broken Auth, etc.
  • Status: Solved (green checkmark) or unsolved

Each challenge has a hint icon (lightbulb). The official companion guide, Pwning OWASP Juice Shop, is available free at pwning.owasp-juice.shop if you need detailed walkthrough guidance.

Recommended starting order:

  1. One-star challenges — Learn the fundamentals (find the scoreboard, DOM XSS, zero-star feedback)
  2. Two-star challenges — First exploitation techniques (SQL injection login bypass, IDOR, reflected XSS)
  3. Three-star challenges — Multi-step attacks (admin section access, JWT forgery setup, XXE)
  4. Four- and five-star challenges — Advanced exploitation (JWT algorithm confusion, complex chained attacks)

Who Uses OWASP Juice Shop and Why?

Security Learners and Practitioners

Juice Shop provides a legal, realistic target for practicing web application penetration testing. It covers the full OWASP Top 10 in a modern architecture, making it far more representative of real-world assessments than older PHP/Java vulnerable apps.

Development Teams

Running Juice Shop in security training sessions helps developers understand what vulnerabilities look like from an attacker’s perspective — making them significantly better at writing secure code.

Security Teams Running CTFs

Juice Shop’s built-in CTF mode generates unique flags per challenge. It is widely used for corporate security training events, university security courses, and competitive team exercises.

AppSec Engineers Benchmarking Scanners

Before deploying a DAST or SAST scanner against production code, run it against Juice Shop first. A scanner that misses the unobfuscated SQL injection in Juice Shop’s login form — the most obvious SQL injection test case that exists — will miss similar patterns in your production application.

Minimum DAST scanner benchmark against Juice Shop:

VulnerabilityWhat to Verify the Scanner Finds
SQL injection in login formClassic ' OR '1'='1'-- bypass
Reflected XSS in search<iframe src="javascript:alert('xss')"> in search bar
Missing security headersContent-Security-Policy, X-Content-Type-Options
Directory listing/ftp/ accessible without authentication
CORS misconfigurationPermissive Access-Control-Allow-Origin policy

OWASP Juice Shop vs. Other Vulnerable Applications

ApplicationArchitectureBest For
OWASP Juice ShopAngular + Node.js REST APIDAST benchmarking modern SPAs, security training, CTF
DVWAPHP + MySQLPHP SAST benchmarking, basic injection practice
WebGoatJava + SpringJava SAST benchmarking, structured learning
bWAPPPHPBreadth of vulnerability types (100+)
NodeGoatNode.js + ExpressNode.js/Express SAST benchmarking

Most security programs use Juice Shop for DAST testing and at least one language-specific app (DVWA for PHP, WebGoat for Java) for SAST benchmarking. See our full OWASP Juice Shop alternatives comparison for a detailed breakdown.


Running Juice Shop with Authenticated Scanning

A significant portion of Juice Shop’s attack surface is behind authentication. To test authenticated areas, configure your DAST scanner with credentials:

  1. Register a test user at http://localhost:3000/#/register
  2. Note the credentials you created (e.g., [email protected] / Test1234!)
  3. Configure your DAST scanner to log in with those credentials before scanning
  4. Verify the scanner can access the profile page at /#/profile and basket API at /api/BasketItems

An unauthenticated scan of Juice Shop only covers ~20% of its attack surface — primarily the product listing page, login form, and registration form. The most interesting vulnerabilities (IDOR, JWT flaws, admin panel access) require authentication.


Juice Shop CTF Mode

For running a competitive security training event:

# Install the Juice Shop CTF CLI
npm install -g juice-shop-ctf-cli

# Run Juice Shop with CTF flag generation
docker run -d -p 3000:3000 \
  -e CTF_KEY=your_secret_key_here \
  bkimminich/juice-shop

In CTF mode, solving each challenge generates a unique flag string. Teams submit these flags to a CTF platform (CTFd is the most common choice) to score points. The Juice Shop CTF CLI generates the corresponding CTFd challenge configuration automatically.


Frequently Asked Questions

Is OWASP Juice Shop free?

Yes. Juice Shop is completely free and open-source under the MIT license. The Docker image is free on Docker Hub (bkimminich/juice-shop). The source code is free on GitHub. The companion guide Pwning OWASP Juice Shop is free online.

Does Juice Shop work on Apple Silicon (M1/M2/M3) Macs?

Yes. The official Docker image supports both AMD64 and ARM64 architectures. Running docker run --rm -p 3000:3000 bkimminich/juice-shop on an Apple Silicon Mac with Docker Desktop works without any special configuration.

How many challenges does Juice Shop have?

Current versions of Juice Shop have over 100 challenges. The exact count changes with each major release as new challenges are added. The scoreboard always shows the current complete list for the version you are running.

Is Juice Shop safe to run on a production server?

No. Juice Shop is intentionally vulnerable. It should only be run in an isolated local environment (Docker container on your laptop, private VM) or a dedicated isolated training environment. Never expose it to the internet or run it alongside production systems.

What is the hardest challenge in Juice Shop?

Six-star challenges are the most difficult. These include forging JWT tokens using algorithm confusion attacks, exploiting subtle application logic flaws, and chaining multiple vulnerabilities together to achieve a non-obvious outcome. Completing all six-star challenges puts you in the top percentile of Juice Shop users.


Summary

OWASP Juice Shop is:

  • The most realistic and widely used vulnerable web application for security practice
  • Free, open-source, and maintained by the OWASP Foundation
  • A modern Node.js/Angular application with 100+ challenges covering the full OWASP Top 10
  • The industry-standard benchmark for DAST scanner validation
  • Runnable in under 60 seconds with Docker: docker run --rm -p 3000:3000 bkimminich/juice-shop

Whether you are learning web application security for the first time, benchmarking a DAST scanner before production deployment, or running a team training event — OWASP Juice Shop is the starting point.


Offensive360 DAST is benchmarked against Juice Shop on every release to verify scanner detection accuracy. Book a demo — see what your codebase actually contains, results in minutes. Or see our complete Juice Shop guide for setup instructions, challenge walkthroughs, and DAST benchmarking details.

Offensive360 Security Research Team

Application Security Research

Updated August 22, 2026

Find vulnerabilities before attackers do

Run Offensive360 SAST and DAST against your applications and get a full vulnerability report in minutes.