Public | Automated Build

Last pushed: 18 hours ago
Short Description
OWASP Juice Shop - An intentionally insecure Javascript Web Application
Full Description

OWASP Juice Shop






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)

OWASP Juice Shop is an intentionally insecure web application written
entirely in JavaScript which encompasses the entire range of
OWASP Top Ten and other
severe security flaws.

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

Setup

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

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

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 cd into the unpacked folder
  4. Run npm start
  5. 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.

Docker Container

  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)

If you want to run Juice Shop on a Raspberry Pi 3, there is an
unofficial Docker image available at
https://hub.docker.com/r/arclight/juice-shop_arm which is based on
resin/rpi-raspbian and maintained by
@battletux.

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

Deploy to Docker Cloud (:microscope:)

  1. Click the button below and follow the instructions

This (:microscope:) is an experimental deployment option! Your
feedback is appreciated at https://gitter.im/bkimminich/juice-shop.

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

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!

Azure Web App for Containers

  1. Open 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. "East US">
  3. Create an app service plan by running az appservice plan create --name <plan name> --resource-group <group name> --sku S1 --is-linux
  4. Create a web app with the
    Juice Shop Docker
    image by running the following (on one line in the bash shell) az webapp create --resource-group <group name> --plan <plan name>
    --name <app name> --deployment-container-image-name bkimminich/juice-shop

For more information please refer to the
detailed walkthrough with screenshots
by @JasonHaley. You can alternatively
follow his guide to
set up OWASP Juice Shop as an Azure Container Instance.

Node.js version compatibility

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 Docker image Packaged distributions
9.x latest (current official release), snapshot (preview from develop branch) juice-shop-<version>_node9_windows_x64.zip, juice-shop-<version>_node9_linux_x64.tgz
8.x juice-shop-<version>_node8_windows_x64.zip, juice-shop-<version>_node8_linux_x64.tgz

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

XSS Demo

To show the possible impact of
XSS), you
can download this
docker-compose-file
and run docker-compose up to start the juice-shop and the
shake-logger. Assume you received and (of course) clicked
this inconspicuous phishing link
and login. Apart from the visual/audible effect, the attacker also
installed an input logger to grab
credentials! This could easily run on a 3rd party server in real life!

You can also find a recording of this attack in action on YouTube:
:tv:

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 PDF, Kindle and ePub format. You can
also
browse the full content online!

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

We are always happy to get new contributors on board! Please check the
following table for possible ways to do so:

:question: :bulb:
Found a bug? Crashed the app? Broken challenge? Found a vulnerability that is not on the Score Board? Create an issue or post your ideas in the chat
Want to help with development? Pull requests are highly welcome! Please refer to the Contribute to development and Codebase 101 chapters of our companion guide ebook
Want to help with internationalization? Find out how to join our Crowdin project in the Helping with translations documentation
Anything else you would like to contribute? Write an email to owasp_juice_shop_project@lists.owasp.org or bjoern.kimminich@owasp.org

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

PayPal

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

Credit Card (through RegOnline)

OWASP hosts a
donation form on RegOnline.
Refer to the
Credit card donation step-by-step
guide for help with filling out the donation form correctly.

Crypto Currency



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

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

Docker Pull Command
Owner
bkimminich
Source Repository