Git Product home page Git Product logo

pwning-juice-shop's Introduction

Juice Shop Logo OWASP Juice Shop

OWASP Flagship GitHub release Twitter Follow Subreddit subscribers

CI/CD Pipeline Test Coverage Maintainability Code Climate technical debt Cypress tests OpenSSF Best Practices GitHub stars Contributor Covenant

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

Table of contents

Setup

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

From Sources

GitHub repo size

  1. Install node.js
  2. Run git clone https://github.com/juice-shop/juice-shop.git --depth 1 (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 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/juice-shop/juice-shop.git (or clone your own fork of the repository)
  3. Run cd vagrant && vagrant up
  4. Browse to 192.168.56.110

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

Google Compute Engine Instance

  1. Login to the Google Cloud Console and open Cloud Shell.
  2. Launch a new GCE instance based on the juice-shop container. Take note of the EXTERNAL_IP provided in the output.
gcloud compute instances create-with-container owasp-juice-shop-app --container-image bkimminich/juice-shop
  1. Create a firewall rule that allows inbound traffic to port 3000
gcloud compute firewall-rules create juice-rule --allow tcp:3000
  1. Your container is now running and available at http://<EXTERNAL_IP>:3000/

Heroku

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

Deploy

If you have forked the Juice Shop repository on GitHub, the Deploy to Heroku button will deploy your forked version of the application.

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!

Documentation

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 with the official node.js LTS schedule as close as possible. Docker images and packaged distributions are offered accordingly.

node.js Supported Tested Packaged Distributions Docker images from master Docker images from develop
22.x
21.x ( ✔️ ) ✔️ Windows (x64), MacOS (x64), Linux (x64)
20.x ✔️ ✔️ Windows (x64), MacOS (x64), Linux (x64) latest (linux/amd64, linux/arm64) snapshot (linux/amd64, linux/arm64)
20.6.0 🐛 angular/angular-cli#25782
19.x ( ✔️ )
18.x ✔️ ✔️ Windows (x64), MacOS (x64), Linux (x64)
<18.x

Juice Shop is automatically tested only on the latest .x minor version of each node.js version mentioned above! There is no guarantee that older minor node.js releases will always work with Juice Shop! Please make sure you stay up to date with your chosen version.

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.

🛑 Please avoid opening GitHub issues for support requests or questions!

Official companion guide

Write Goodreads Review

OWASP Juice Shop comes with an official companion guide eBook. It will give you a complete overview of all 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. Extensive documentation of custom re-branding, CTF-support, trainer's guide and much more is also included.

Pwning OWASP Juice Shop is published under CC BY-NC-ND 4.0 and is available for free in PDF, Kindle and ePub format on LeanPub. You can also browse the full content online!

Pwning OWASP Juice Shop cover Pwning OWASP Juice Shop back cover

Contributing

GitHub contributors JavaScript Style Guide Crowdin 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 & the OWASP Juice Shop contributors 2014-2023.

Juice Shop Logo

pwning-juice-shop's People

Contributors

agrawalarpit14 avatar angelmashiro avatar bkimminich avatar brittenhouse avatar cnotin avatar dnull avatar gyeyosi avatar imgbotapp avatar j12934 avatar jamescullum avatar lfama avatar malexmave avatar mnthomson avatar noraj avatar parthn2 avatar presidentbeef avatar psiinon avatar rishabhkeshan avatar santosomar avatar scar26 avatar senk avatar shubhampalriwala avatar soobinrho avatar suttapongw avatar techbrunch avatar teodor440 avatar tghosth avatar wurstbrot avatar xmunoz avatar zonksec avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pwning-juice-shop's Issues

Add challenge hints/solutions up to v10.2.0

Challenge Hints Solution
Use the bonus payload in the DOM XSS challenge ✔️ ✔️
Reset Uvogin's password via the Forgot Password mechanism ✔️ ✔️
Obtain a Deluxe Membership without paying for it

****** SPOILERS ***** KeePass

Hey,

Has anyone solved the KeePass challenge using MacPass or some other tool on MacOS to open the KeePass database? So far I have not been successful using KeePassX, MacPass, or kpcli.

Thanks!

ZAP Scan Baseline Report

View the following link to download the report.
RunnerID:6060038468

Add "Teaching Security Automation" to Trainer's Guide

List all challenges in another table that are well-suited for teaching OWASP ZAP. Should include things that ZAP...

  • ...passively finds (e.g. SQLi in Login form)
  • ...finds with its active scan
  • ...finds with Forced Browsing (e.g. /ftp and /encryptionkeys)
    etc.

ZAP Scan Baseline Report

View the following link to download the report.
RunnerID:3863494722

Add "Single User Application" section

Needs to explain that OWASP Juice Shop is meant to be used by an individual hacker and cannot be shared due to session management and progress tracking issues that would occur.

Update all links to match new website

  • As initial quick-fix replace all www.owasp.org with wiki.owasp.org
  • Gradually replace all wiki.owasp.org pages with matching new owasp.org GitHub pages

[🐛] Password support wrong in KeePass file

🐛 Bug report

Description

The password in ftp/incident-support.kdbx is not the same as in data/static/users.yml. If you take a look at the solution (https://pwning.owasp-juice.shop/appendix/solutions.html#log-in-with-the-support-teams-original-user-credentials) you can also see that the password in step 16 is also different than the one in the screenshot.

Is this a regression?

Introduced in 0170851928bfd0f360bda2aa7bbedbe33e704967 .

🌳 Your Environment

Docker bkimminich/juice-shop



                "org.opencontainers.image.authors": "Bjoern Kimminich ",
                "org.opencontainers.image.created": "”2022-02-08T22:38:10Z”",
                "org.opencontainers.image.description": "Probably the most modern and sophisticated insecure web application",
                "org.opencontainers.image.documentation": "https://help.owasp-juice.shop",
                "org.opencontainers.image.licenses": "MIT",
                "org.opencontainers.image.revision": "0b9b6f7",
                "org.opencontainers.image.source": "https://github.com/juice-shop/juice-shop",
                "org.opencontainers.image.title": "OWASP Juice Shop",
                "org.opencontainers.image.url": "https://owasp-juice.shop",
                "org.opencontainers.image.vendor": "Open Web Application Security Project",
                "org.opencontainers.image.version": "13.2.2"

ZAP Scan Baseline Report

View the following link to download the report.
RunnerID:78474350

ZAP Scan Baseline Report

View the following link to download the report.
RunnerID:1938961344

Coverage for OWASP Summit 2017 challenge pack

Hints

  • Reset Jim's password via the Forgot Password mechanism
  • Reset Bender's password via the Forgot Password mechanism
  • Reset Bjoern's password via the Forgot Password mechanism
  • Find out the JWT secret
  • Retrieve the blueprint

Solutions

  • Reset Jim's password via the Forgot Password mechanism
  • Reset Bender's password via the Forgot Password mechanism
  • Reset Bjoern's password via the Forgot Password mechanism
  • Find out the JWT secret
  • Retrieve the blueprint

Some headings are not rendered correctly

image

Inserting a second blank line at the end of the previous chapter file solves the rendering issue but raises an ERROR during PDF-generation about missing headers.

ZAP Scan Baseline Report

View the following link to download the report.
RunnerID:845521154

ZAP Scan Baseline Report

View the following link to download the report.
RunnerID:2440604488

ZAP Scan Baseline Report

View the following link to download the report.
RunnerID:1131116021

Adaptation of Juice Shop jingle as RTTTL format

User Story

As an owner of a Flipper Zero
I want a Juice Shop jingle version compatible with its Music Player application
so that I can listed to my favorite tune while hacking stuff 🐬

Possible Input

When you [D] want to shop online then you had [G] better be [D] sure
The [D] experience is safe, and [A] also secure
Don't wanna [D] let no SQLi or cross-site [G] scripting ruin your [D] day
No you [D] wanna break into a joyous [G] song [A] and [D] say

[G] Juice [D] Shop, [G walk-up to A] Juice [Bm] Shop
You can [D] order tasty beverages in [A] any quantity
[G] Juice [D] Shop, [G walk-up to A] Juice [Bm] Shop
Just don't [D] test the site with Burp Suite or you [G] won't like [A] what you [D] see

Intended Output

An RTTTL for FlipperZero version of the jingle chorus.

ZAP Scan Baseline Report

View the following link to download the report.
RunnerID:5495962066

Unclear solution for resetting Benders password via forgot password.

I recently used Juice Shop in a training and discovered that, depending on what web resource you find, the company Bender used to work for is written as Stop'n'Drop or Stop-and-Drop This caused a great deal of frustration for the students as they discovered the 'answer' only to find out that a spelling variant kept them from solving the challenge.

Issue:

Solution for Reset Bender's password via the Forgot Password mechanism

Reproduce:

  1. Starting at the wikipedia article for Bender at https://en.wikipedia.org/wiki/Bender_(Futurama) you'll find a link to Suicide Booths in that article (as of the filing of this issue)
  2. Follow that link to https://en.wikipedia.org/wiki/Suicide_booth which has a Futurama sub-section
  3. In this section, is the following text:
    In the world of Futurama, Stop-and-Drop suicide booths...

Suggested Fix:

Consider loosing up the verification for completion of this challenge by allowing alternate spellings of Bender's company name or at least mention the existence of the alternative spelling in the solutions.

As an instructor, I'd solved this challenge long enough ago to remember that I found the answer on a wiki and defaulted to Wikipedia. I didn't recall that wikia has a different spelling that the Juice Shop challenge relies on. The alternate spelling was close enough to what I recalled that I expected it to work and, of course, it didn't. I don't know of a canonical reference for Futurama so being loose on the accepted value or providing a note/warning in the solutions would help avoid confusion of instructors and frustration by students using Juice Shop.

This is a micro-quibble in an otherwise fantastic OWASP project.

ZAP Scan Baseline Report

View the following link to download the report.
RunnerID:5986496215

Create release for v8.4.0

Hello @bkimminich. Thanks for all your work on this awesome project!

I'm wondering, can you please create a release for the 8.4.0 version of "Pwning Juice Shop?" One exists for 8.3.0, and I just noticed that you just released version 8.5.0 of Juice Shop. I have a CTF event all set up for next week using v8.4.0, and I want to ensure that I can distribute a 8.4.0 compatible copy of "Pwning Juice Shop."

Thanks!

ZAP Scan Baseline Report

View the following link to download the report.
RunnerID:274282692

Add missing challenge hints/solutions

Hints

  • Successfully redeem an expired campaign coupon code
  • Post a product review as another user or edit any user's existing review
  • Steal someone else's personal data without using Injection
  • All your orders are belong to us! Even the ones which don't
  • Solve the 2FA challenge for user "wurstbrot"
  • Identify an unsafe product that was removed from the shop and inform the shop which ingredients are dangerous
  • Dumpster dive the Internet for a leaked password and log in to the original user account it belongs to
  • Infect the server with juicy malware by abusing arbitrary command execution
  • Request a hidden resource on server through server

Solutions

  • Successfully redeem an expired campaign coupon code
  • Post a product review as another user or edit any user's existing review
  • Steal someone else's personal data without using Injection
  • All your orders are belong to us! Even the ones which don't
  • Solve the 2FA challenge for user "wurstbrot"
  • Identify an unsafe product that was removed from the shop and inform the shop which ingredients are dangerous
  • Dumpster dive the Internet for a leaked password and log in to the original user account it belongs to
  • Perform a persisted XSS attack through an HTTP header
  • Like any review at least three times as the same user
  • Infect the server with juicy malware by abusing arbitrary command execution
  • Request a hidden resource on server through server

Ebook version for CTFs

It would be cool if there was a version for CTFs with the answers and links to online Juice Shop resources removed. I have a fork here where I did this (https://github.com/tghosth/pwning-juice-shop) but it would be cool if there was a way of generating this automagically as right now I need to manually do it every time the ebook is updated...

Recommend old browsers for CSRF challenge

In hint and solution for the CSRF challenge it should be clearly stated that this won't work on latest browsers:

First step would be to just add a note to user an "older" browser. Advanced step would be to actually investigate up to which version of Chrome/Firefox this attack is still possible and mention these specifically (in the solution, not the hints).

Add CTF appendix

Add a appendix describing the purpose of CTF and how to set it up with Juice Shop. Could initially just refer to the corresponding juice-shop-ctf repo.

Add TOC to eBook

The eBook currently does not use the :toc: macro and when added, it reveals a rather messy chapter structure, due to use of various heading sizes throughout the book.

image

Bug on Gitbook.io in CTF.md Part 1

Online you have :

Non-interactive generator mode

Instead of answering questions in the CLI you can also provide your desired configuration in a file with the following straightforward format:

ctfFramework: CTFd | FBCTF | RootTheBox
juiceShopUrl: https://juice-shop.herokuapp.com
ctfKey: https://raw.githubusercontent.com/bkimminich/juice-shop/master/ctf.key # can also be actual key instead URL
countryMapping: https://raw.githubusercontent.com/bkimminich/juice-shop/master/config/fbctf.yml # ignored for CTFd and RootTheBox
insertHints: none | free | paid
insertHintUrls: none | free | paid # optional for FBCTF

BUT in github you have one line more : ;)

insertHintSnippets: none | free | paid # optional for FBCTF

Must peharps deploying at new.

ZAP Scan Baseline Report

View the following link to download the report.
RunnerID:81634165

ZAP Scan Baseline Report

View the following link to download the report.
RunnerID:1457157533

Update Codebase 101

  • Fix wrong tier image order for Server and DB
  • Update for use of finale-rest over epilogue
  • Update architecture diagrams accordingly

[🐛] Documentation invalid for custom images

🐛 Bug report

Description

The documentation about customization asks the user to put all images for custom products into the location /app/public/images/products.

However this static folder is currently disabled and files there are ignored.

Instead the files now need to be put into /juice-shop/frontend/dist/frontend/assets according to the line below.

Is this a regression?

Yes, it was disabled by this commit in June 2018. However, the documentation was wrong back then as well, as it wasnt /app, but /juice-shop/app.

🔬 Minimal Reproduction

Configure a custom product and follow the documentation by putting an image into /app/public/images/products - the image will not be found

🔥 Exception or Error

No error, images are simply not visible

🌳 Your Environment

Docker image v9.0.1

Additional Information

ZAP Scan Baseline Report

View the following link to download the report.
RunnerID:4646673144

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.