juice-shop

OWASP Juice Shop: Probably the most modern and sophisticated insecure web application

Github stars Tracking Chart

Juice Shop Logo OWASP Juice Shop OWASP Flagship GitHub release Twitter Follow Subreddit subscribers

Build Status
Docker Cloud Build Status
Test Coverage
Maintainability
Code Climate technical debt
CII Best Practices
GitHub stars

The most trustworthy online shop out there.
(@dschadow) —
The best juice shop on the whole internet!
(@shehackspurple) —
Actually the most bug-free vulnerable application in existence!
(@vanderaj) —
First you ??then you ?
(@kramse) —
But this doesn't have anything to do with juice.
(@coderPatros' wife)

OWASP Juice Shop is probably the most modern and sophisticated insecure
web application! It can be used in security trainings, awareness demos,
CTFs and as a guinea pig for security tools! Juice Shop encompasses
vulnerabilities from the entire
OWASP Top Ten along
with many other security flaws found in real-world applications!

Juice Shop Screenshot Slideshow

For a detailed introduction, full list of features and architecture
overview please visit the official project page:
https://owasp-juice.shop

Setup

You can find some less common installation variations in
the Running OWASP Juice Shop documentation.

Deploy on Heroku (free ($0/month) dyno)

  1. Sign up to Heroku and
    log in to your account
  2. Click the button below and follow the instructions

Deploy

This is the quickest way to get a running instance of Juice Shop! If
you have forked this repository, the deploy button will automatically
pick up your fork for deployment! As long as you do not perform any
DDoS attacks you are free to use any tools or scripts to hack your
Juice Shop instance on Heroku!

From Sources

GitHub repo size

  1. Install node.js
  2. Run git clone https://github.com/bkimminich/juice-shop.git (or
    clone your own fork
    of the repository)
  3. Go into the cloned folder with cd juice-shop
  4. Run npm install (only has to be done before first start or when you
    change the source code)
  5. Run npm start
  6. Browse to http://localhost:3000

Packaged Distributions

GitHub release
SourceForge
SourceForge

  1. Install a 64bit node.js on your
    Windows, MacOS or Linux machine
  2. Download juice-shop-<version>_<node-version>_<os>_x64.zip (or
    .tgz) attached to
    latest release
  3. Unpack and cd into the unpacked folder
  4. Run npm start
  5. Browse to http://localhost:3000

Each packaged distribution includes some binaries for sqlite3 and
libxmljs bound to the OS and node.js version which npm install was
executed on.

Docker Container

Docker Automated build
Docker Pulls
Docker Stars

  1. Install Docker
  2. Run docker pull bkimminich/juice-shop
  3. Run docker run --rm -p 3000:3000 bkimminich/juice-shop
  4. Browse to http://localhost:3000 (on macOS and Windows browse to
    http://192.168.99.100:3000 if you are using docker-machine instead
    of the native docker installation)

Vagrant

  1. Install Vagrant and
    Virtualbox
  2. Run git clone https://github.com/bkimminich/juice-shop.git (or
    clone your own fork
    of the repository)
  3. Run cd vagrant && vagrant up
  4. Browse to 192.168.33.10:3000

Amazon EC2 Instance

  1. In the EC2 sidenav select Instances and click Launch Instance
  2. In Step 1: Choose an Amazon Machine Image (AMI) choose an Amazon
    Linux AMI
    or Amazon Linux 2 AMI
  3. In Step 3: Configure Instance Details unfold Advanced Details and
    copy the script below into User Data
  4. In Step 6: Configure Security Group add a Rule that opens port 80
    for HTTP
  5. Launch your instance
  6. Browse to your instance's public DNS
#!/bin/bash
yum update -y
yum install -y docker
service docker start
docker pull bkimminich/juice-shop
docker run -d -p 80:3000 bkimminich/juice-shop

Azure Container Instance

  1. Open and login (via az login) to your
    Azure CLI or login to
    the Azure Portal, open the CloudShell
    and then choose Bash (not PowerShell).
  2. Create a resource group by running az group create --name <group name> --location <location name, e.g. "centralus">
  3. Create a new container by running az container create --resource-group <group name> --name <container name> --image bkimminich/juice-shop --dns-name-label <dns name label> --ports 3000 --ip-address public
  4. Your container will be available at http://<dns name label>.<location name>.azurecontainer.io:3000

Node.js version compatibility

GitHub package.json dynamic
GitHub package.json dynamic

OWASP Juice Shop officially supports the following versions of
node.js in line as close as possible with the
official node.js LTS schedule. Docker
images and packaged distributions are offered accordingly., node.js, Supported, Packaged Distributions, Docker image tags, :---------, :---------------------, :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------, :---------------------------------------------------------------------------------------------, 13.x, :heavy_check_mark:, Windows Linux MacOS, 12.x, :heavy_check_mark:, Windows Linux MacOS, latest (current official master release), snapshot (preview from develop branch), 11.x, (:heavy_check_mark:), 10.x, :heavy_check_mark:, Windows Linux MacOS, <10.x, :x:, ## Demo

Feel free to have a look at the latest version of OWASP Juice Shop:
http://demo.owasp-juice.shop

This is a deployment-test and sneak-peek instance only! You are not
supposed
to use this instance for your own hacking endeavours! No
guaranteed uptime! Guaranteed stern looks if you break it!

Customization

Via a YAML configuration file in /config, the OWASP Juice Shop can be
customized in its content and look & feel.

For detailed instructions and examples please refer to
our Customization documentation.

CTF-Extension

If you want to run OWASP Juice Shop as a Capture-The-Flag event, we
recommend you set it up along with a CTFd or
FBCTF server conveniently using the
official
juice-shop-ctf-cli
tool.

For step-by-step instructions and examples please refer to
the Hosting a CTF event chapter
of our companion guide ebook.

Troubleshooting Gitter

If you need help with the application setup please check our
our existing Troubleshooting
guide. If this does not solve your issue please post your specific
problem or question in the
Gitter Chat where community
members can best try to help you.

:stop_sign: Please avoid opening GitHub issues for support requests or
questions!

Documentation

Pwning OWASP Juice Shop Write Goodreads Review

This is the official companion guide to the OWASP Juice Shop. It will
give you a complete overview of the vulnerabilities found in the
application including hints how to spot and exploit them. In the
appendix you will even find complete step-by-step solutions to every
challenge. Pwning OWASP Juice Shop is
published under
CC BY-NC-ND 4.0
and is available for free in PDF, Kindle and ePub format. You can
also browse the full content online!

Pwning OWASP Juice Shop Cover

Slide Decks

Contributing GitHub contributors JavaScript Style Guide Crowdin Bountysource Activity GitHub issues by-label GitHub issues by-label

We are always happy to get new contributors on board! Please check
CONTRIBUTING.md to learn how to
contribute to our codebase or the
translation into different languages!

References

Did you write a blog post, magazine article or do a podcast about or
mentioning OWASP Juice Shop? Or maybe you held or joined a conference
talk or meetup session, a hacking workshop or public training where this
project was mentioned?

Add it to our ever-growing list of REFERENCES.md by
forking and opening a Pull Request!

Merchandise

  • On Spreadshirt.com and
    Spreadshirt.de you can get
    some swag (Shirts, Hoodies, Mugs) with the official OWASP Juice Shop
    logo
  • On
    StickerYou.com
    you can get variants of the OWASP Juice Shop logo as single stickers
    to decorate your laptop with. They can also print magnets, iron-ons,
    sticker sheets and temporary tattoos.

The most honorable way to get some stickers is to
contribute to the project
by fixing an issue, finding a serious bug or submitting a good idea for
a new challenge!

We're also happy to supply you with stickers if you organize a meetup or
conference talk where you use or talk about or hack the OWASP Juice
Shop! Just
contact the mailing list
or the project leader to discuss
your plans! !

Donations

The OWASP Foundation gratefully accepts donations via Stripe. Projects
such as Juice Shop can then request reimbursement for expenses from the
Foundation. If you'd like to express your support of the Juice Shop
project, please make sure to tick the "Publicly list me as a supporter
of OWASP Juice Shop" checkbox on the donation form. You can find our
more about donations and how they are used here:

https://pwning.owasp-juice.shop/part3/donations.html

Contributors

The OWASP Juice Shop core project team are:

For a list of all contributors to the OWASP Juice Shop please visit our
HALL_OF_FAME.md.

Licensing license

This program is free software: you can redistribute it and/or modify it
under the terms of the MIT license. OWASP Juice Shop and any
contributions are Copyright © by Bjoern Kimminich 2014-2020.

Juice Shop Logo

Main metrics

Overview
Name With Ownerjuice-shop/juice-shop
Primary LanguageTypeScript
Program languageJavaScript (Language Count: 11)
Platform
License:MIT License
所有者活动
Created At2014-09-19 14:53:06
Pushed At2025-05-05 09:46:13
Last Commit At2025-04-22 23:58:11
Release Count216
Last Release Namev17.3.0 (Posted on 2025-04-22 23:58:38)
First Release Namev0.1-pre (Posted on )
用户参与
Stargazers Count11.2k
Watchers Count166
Fork Count12.8k
Commits Count20.6k
Has Issues Enabled
Issues Count853
Issue Open Count6
Pull Requests Count1056
Pull Requests Open Count3
Pull Requests Close Count680
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private