Probably the most modern and sophisticated insecure web application
Copyright (c) 2014-2020 Björn Kimminich / @bkimminich
The Open Web Application Security Project® (OWASP) is a nonprofit foundation that works to improve the security of software. Through community-led open source software projects, hundreds of local chapters worldwide, tens of thousands of members, and leading educational and training conferences, the OWASP Foundation is the source for developers and technologists to secure the web.
Open Web Application Security Project and OWASP are registered trademarks of the OWASP Foundation, Inc.
Translating "dump" or "useless outfit" into German yields "Saftladen" which is a compound word from "Saft" and "Laden". This reverse-translates into "juice" and "shop". Hence the project name.
That the initials "JS" match with those of "JavaScript" was purely coincidental!
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)
Unsuspectingly browse the Juice Shop like Average Joe!
Covering various vulnerabilities and serious design flaws
OWASP Juice Shop covers all vulnerabilities from the latest OWASP Top 10 and more.
There's something to do for beginners and veterans alike
Challenge progress is tracked on server-side
Solved challenges are announced as push notifications
Auto-saves your hacking progress and restores on server restart
Some challenges come with an embedded interactive tutorial
Gradually unlocking tutorials and the entire Score Board
Flag codes can optionally be displayed for solved challenges
All participants use individual Juice Shop instances anywhere, sharing only the flag code-ctfKey
and a central score server.
Utility project to help you host a hacking event on CTFd, FBCTF or RootTheBox
Locally via npm i -g juice-shop-ctf-cli
or as Docker container
Run juice-shop-ctf
on the command line and let a wizard create a data-dump to conveniently import into CTFd, FBCTF or RootTheBox
Run juice-shop-ctf --config myconfig.yml
to use non-interactive mode passing in configuration via YAML file
ctfFramework: CTFd | FBCTF | RootTheBox
juiceShopUrl: https://juice-shop.herokuapp.com
ctfKey: https://raw.githubusercontent.com/bkimminich/juice-shop/master/ctf.key
countryMapping: https://raw.githubusercontent.com/bkimminich/juice-shop/master/config/fbctf.yml
insertHints: none | free | paid
insertHintUrls: none | free | paid
Your CTF score server instance will be ready-to-play in <5min
3rd party project to run separate Juice Shop instances for training or CTF participants on a central Kubernetes cluster
Restricts number of users to team members and protects against illicit cross-team instance access
Fully customizable business context and look & feel
Customize the application via a simple YAML
file
application:
domain: juice-sh.op
name: 'OWASP Juice Shop'
logo: JuiceShop_Logo.png
favicon: favicon_js.ico
theme: bluegrey-lightgreen
showVersionNumber: true
showGitHubLinks: true
numberOfRandomFakeUsers: 0
altcoinName: Juicycoin
privacyContactEmail: donotreply@owasp-juice.shop
customMetricsPrefix: juiceshop
social:
twitterUrl: 'https://twitter.com/owasp_juiceshop'
facebookUrl: 'https://www.facebook.com/owasp.juiceshop'
[...]
[...]
The YAML
configuration allows you to override all products
products:
-
name: 'Product Name'
price: 100
description: 'Product Description'
image: '(https://somewhe.re/)image.png'
useForProductTamperingChallenge: false
useForChristmasChallenge: false
fileForRetrieveBlueprintChallenge: ~
reviews:
- { text: 'Customer review', author: jim }
-
name: 'Product with Lorem Ipsum description, filler image and random price'
Your config is validated on server startup to prevent broken or unsolvable challenges!
Hide origin & notifications for 0% distraction in awareness trainings
Simply start application with NODE_ENV=quiet
environment variable defined!
Utility project to show the dangers of XSS holes combined with bad Content Security Policy using Harlem Shake and a Keylogger
Dear valued {firstname} {lastname}, you won our big lottery which you might not even remembering to have participating in! Click on the following totall inconspicious link to claim your prize now!
CLICK HER NOW! FREE STUFF! YOU WON!Sincereely yours, Bjorn Kimminich
(CEO/CIO/CISO/CISXP/CFM/SVP Marketing @ Juice Shop Inc.)
Juice Shop Inc. is registered as a bla bla bla bla yadda yadda yadda lorem ipsum lirum larum lorum latido latido latidooooooo and even more very assuring legal bla blubb. All logos and icons of which none is even in this lousy attempt of a phishing mail are registered trademarks of Juice Shop Inc. and finally we are throwing in an outdated Copyright (c) 2018 Juice Shop Inc.
Do you dare to click the link above? (Requires shake-logger
to run locally!)
JavaScript/TypeScript all the way from UI to REST API
Comes with cloud, local and containerized run options
Crowd-sourced UI translations for 40 languages
Maximizing Test Automation & Code Coverage
Automated Build, CI/CD & Code Analysis
Convenient monitoring, notification and data integration capabilities
Sends a payload to a specified URL whenever a challenge is solved
{
"solution": {
"challenge": "localXssChallenge",
"evidence": null,
"issuedOn": "2020-05-26T22:03:20.059Z"
},
"ctfFlag": "b0d70dce6cadadb85882ea498fac6785dba2349b",
"issuer": {
"hostName": "Traviss-Mac-6.local",
"os": "Darwin (17.7.0)",
"appName": "OWASP Juice Shop",
"config": "default",
"version": "11.2.0"
}
}
🚧 Early adopters include MultiJuicer for a central Score Board across multiple instances, and OWASP SKF for recognizing a successful solve of a Juice Shop lab launched from within their platform.
JSON
template allows to import a dashboard into Grafana consuming and displaying all metrics gathered via Prometheus
If FAQ & README don't help, ask for help in the chat. Please refrain from using GitHub issues for support requests.
Yes, definitely! Use whatever pentesting tools you like the most!
Proxies like OWASP ZAP or BurpSuite Free Edition can definitely be useful. Automatic tools like Arachni or Nikto might find some vulnerabilities but will obviously not be able to get the Score Board to 100% for you.
No! The code from GitHub would spoiler all challenge solutions!
You can of course use everything that the application hands to you in the browser, so use its DevTools
! If you are a SAST tool vendor, you can obviously test your scanner against the Juice Shop codebase!
Yes! Feel free to look for ideas, clues & hints everywhere!
Again: Except for the application's own GitHub repository! Also there are many third party solution guides and videos available online, so you might want to be careful about accidental spoilers.
Please carefully follow the instructions in the README!
If Setup & Troubleshooting docs don't help, you can always ask the community or open an issue!
The application is cleanly reset on every startup!
Your Score Board progress is saved automatically and will restore after server restart! This only works if cookies are enabled in your browser.
Find more hints in the free official companion guide on Leanpub
The eBook can also be read online. You can always ask for hints in the community chat as well!
Please report untracked vulnerabilities by opening an issue
Of course you can also contribute directly by opening a pull request. Just stick to the contribution guide!
Some challenges are actually harmful in containerized or cloud environments and are deliberately disabled there
This affects the XXE challenges (because they can lead to instance death by segfault
error)
and the SSTi, Deserialization and some NoSQLi challenges (as they could have unforeseeable side effects on the hosting platform).
Of course! Visit our backlog on GitHub & translations on Crowdin
Issues labelled with good first issue and/or help wanted are the best starting point!
For your 1st merged pull request you'll get some stickers from us
Serial contributors might even get t-shirts, mugs and other glorious merchandise for free!
We fully agree! Thankfully, Brian Johnson already recorded one!
Some amazing facts & stats about the project
Timeline? When it's done!
IT Security Lecture (CC-BY-SA) | https://github.com/bkimminich/it-security-lecture |
Web Application Security in a Nutshell (CC-BY-SA) | http://webappsec-nutshell.kimminich.de |
Copyright (c) 2014-2020 Björn Kimminich / @bkimminich
Licensed under the MIT license.
Created with reveal.js - The HTML Presentation Framework