Public | Automated Build

Last pushed: 5 months ago
Short Description
Juice Shop is an intentionally insecure webapp for sec trainings. Docker image with latest Debian
Full Description

OWASP Juice Shop





The most trustworthy online shop out there.
(@dschadow)

OWASP Juice Shop is an intentionally insecure web app for security
trainings written entirely in Javascript which encompasses the entire
OWASP Top Ten and other
severe security flaws.

Description

Juice Shop is written in Node.js, Express and AngularJS. It was the
first application written entirely in JavaScript listed in the
OWASP VWA Directory.

The application contains over 30 challenges of varying difficulty where
the user is supposed to exploit the underlying vulnerabilities. The
hacking progress is tracked on a score board. Finding this score board
is actually one of the (easy) challenges!

Apart from the hacker and awareness training use case, pentesting
proxies or security scanners can use Juice Shop as a "guinea
pig"-application to check how well their tools cope with
Javascript-heavy application frontends and REST APIs.

Translating "dump" or "useless outfit" into German yields "Saftladen"
which can be reverse-translated word by word into "juice shop". Hence
the project name. That the initials "JS" match with those of
"Javascript" was purely coincidental!

Main Selling Points

  • Easy-to-install: Choose between
    node.js,
    Docker and
    Vagrant to run on
    Windows/Mac/Linux
  • Self-contained: Additional dependencies are pre-packaged or will be
    resolved and downloaded automatically
  • Self-healing: The simple SQLite database is wiped and regenerated from
    scratch on every server startup
  • Gamification: The application notifies you on solved challenges and
    keeps track of successfully exploited vulnerabilities on a Score Board
  • CTF-support: Challenge notifications optionally show a flag code for
    your own
    Capture-The-Flag events
  • Re-branding: Fully customizable business context and look & feel
  • Free and Open source: Licensed under the MIT license with
    no hidden costs or caveats

Application Architecture

Preview

Feel free to have a look at the latest version of OWASP Juice Shop:
https://juice-shop.herokuapp.com

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!

Setup

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

  1. Click the button below and follow the instructions

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

  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

Docker Container

  1. Install Docker
  2. Run docker pull bkimminich/juice-shop
  3. Run docker run -d -p 3000:3000 bkimminich/juice-shop
  4. Browse to http://localhost:3000 (on macOS browse to
    http://192.168.99.100:3000 instead)

Even easier: Run Docker Container from Docker Toolbox (Kitematic)

  1. Install and launch
    Docker Toolbox
  2. Search for juice-shop and click Create to download image and run
    container
  3. Click on the Open icon next to Web Preview to browse to OWASP
    Juice Shop

Packaged Distributions

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

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

Amazon EC2 Instance

  1. Setup an Amazon Linux AMI instance
  2. In Step 3: Configure Instance Details unfold Advanced Details and
    copy the script below into User Data
  3. In Step 6: Configure Security Group add a Rule that opens port 80
    for HTTP
  4. Launch instance
  5. 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

Technically Amazon could view hacking activity on any EC2 instance as
an attack on their AWS infrastructure! We highly discourage aggressive
scanning or automated brute force attacks! You have been warned!

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 http://juice.sh

Customization

Via a YAML configuration file in /config, the OWASP Juice Shop can be
customized in its content and look & feel. Please refer to
CUSTOMIZATION.md for detailed instructions and
examples.

Node.js version compatibility

OWASP Juice Shop officially supports the following versions of
node.js and offers Docker images and packaged
distributions accordingly:

node.js Docker images Docker snapshots Packaged distributions
4.x node4 node4-snapshot, node4-develop juice-shop-<version>_node4_windows_x64.zip, juice-shop-<version>_node4_linux_x64.tgz
6.x latest, node6 snapshot, develop, node6-snapshot, node6-develop juice-shop-<version>_node6_windows_x64.zip, juice-shop-<version>_node6_linux_x64.tgz
7.x node7 node7-snapshot, node7-develop juice-shop-<version>_node7_windows_x64.zip, juice-shop-<version>_node7_linux_x64.tgz

The stable Docker images are built from master while the snapshot
images are built from develop branch. The latter contain unreleased
features but cannot be considered stable.

Additional Documentation

Pwning OWASP Juice Shop

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 with GitBook under
CC BY-NC-ND 4.0
and is available for free in HTML, PDF, Kindle and ePub format.

Slide Decks

Troubleshooting

If you need help with the application setup please check the
TROUBLESHOOTING.md or post your specific problem
or question in the
official Gitter Chat.

Contributing

Found a bug? Crashed the app? Broken challenge? Found a vulnerability
that is not on the Score Board?

Feel free to
create an issue or
post your ideas in the chat!
Pull requests are also highly welcome - please refer to
CONTRIBUTING.md for details.

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

An alternative way to get stickers (and maybe even a pin-back button)
is to somehow 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 send some stickers your way if you
organize a meetup or conference talk where you use or mention OWASP
Juice Shop! Just contact the project leader to discuss your plans:
bjoern.kimminich@owasp.org!

Donations

PayPal

PayPal donations via above button go to the OWASP Foundations and are
earmarked for "Juice Shop". This is the preferred way to support the
project.

Others




Credits

Contributors

Ordered by date of first contribution.
Auto-generated on Wed, 19 Apr
2017 08:32:58 GMT.

Licensing

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-2017.

Docker Pull Command
Owner
changux
Source Repository