Difference between revisions of "OWASP Juice Shop Project"

From OWASP
Jump to: navigation, search
(Official Companion Guide)
(Project Sponsors)
(36 intermediate revisions by the same user not shown)
Line 9: Line 9:
  
 
''The most trustworthy online shop out there.'' ([https://twitter.com/dschadow/status/706781693504589824 dschadow])
 
''The most trustworthy online shop out there.'' ([https://twitter.com/dschadow/status/706781693504589824 dschadow])
 +
— ''The best juice shop on the whole internet!'' ([https://twitter.com/shehackspurple/status/907335357775085568 shehackspurple])
  
OWASP Juice Shop is an intentionally insecure webapp for security trainings written entirely in Javascript which encompasses the entire [[OWASP Top Ten]] and other severe security flaws.
+
OWASP Juice Shop is an intentionally insecure webapp for security trainings written entirely in JavaScript which encompasses the entire [[OWASP Top Ten]] and other severe security flaws.
  
 
==Description==
 
==Description==
Line 18: Line 19:
 
Juice Shop is written in Node.js, Express and AngularJS. It was the first application written entirely in JavaScript listed in the [[OWASP_Vulnerable_Web_Applications_Directory_Project|OWASP VWA Directory]].
 
Juice Shop is written in Node.js, Express and AngularJS. It was the first application written entirely in JavaScript listed in the [[OWASP_Vulnerable_Web_Applications_Directory_Project|OWASP VWA Directory]].
  
The application contains 43 hacking 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!
+
The application contains 47+ hacking 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.
+
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!''
+
''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 ==
 
== Main Selling Points ==
Line 48: Line 49:
 
== Official Companion Guide ==
 
== Official Companion Guide ==
  
[https://leanpub.com/juice-shop Pwning OWASP Juice Shop] is the official companion guide for this project. 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. [https://leanpub.com/juice-shop Pwning OWASP Juice Shop] is [https://www.gitbook.com/book/bkimminich/pwning-owasp-juice-shop published with GitBook]. Offical released versions are available on LeanPub. The ebook is published under [https://creativecommons.org/licenses/by-nc-nd/4.0/ CC BY-NC-ND 4.0] and is available '''for free''' in HTML, PDF, Kindle and ePub format.
+
[https://leanpub.com/juice-shop Pwning OWASP Juice Shop] is the official companion guide for this project. 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. The ebook is published under [https://creativecommons.org/licenses/by-nc-nd/4.0/ CC BY-NC-ND 4.0] and is available '''for free''' as work-in-progress in [https://www.gitbook.com/book/bkimminich/pwning-owasp-juice-shop HTML, PDF, Kindle and ePub format on GitBook]. The latest officially released edition is [https://leanpub.com/juice-shop available '''for free''' on LeanPub in PDF, Kindle and ePub format].
  
 
[[File:Pwning-owasp-juiceshop_cover.jpg|link=https://leanpub.com/juice-shop]]
 
[[File:Pwning-owasp-juiceshop_cover.jpg|link=https://leanpub.com/juice-shop]]
Line 60: Line 61:
 
|target=_blank
 
|target=_blank
 
|currency=USD
 
|currency=USD
|budget=OWASP Juice Shop
+
|budget=OWASP Juice Shop Project
 
}}
 
}}
  
 
== News ==
 
== News ==
  
[25.06.17] juice-shop [https://github.com/bkimminich/juice-shop/releases/tag/v4.1.0 v4.1.0]
+
[02.11.17] juice-shop-ctf [https://github.com/bkimminich/juice-shop-ctf/releases/tag/v3.0.0 v3.0.0]
  
[20.06.17] Initial [https://leanpub.com/juice-shop LeanPub release] of "Pwning OWASP Juice Shop"
+
[27.10.17] juice-shop [https://github.com/bkimminich/juice-shop/releases/tag/v5.0.3 v5.0.3]
  
[16.06.17] juice-shop-ctf [https://github.com/bkimminich/juice-shop-ctf/releases/tag/v1.2.0 v1.2.0]
+
[25.10.17] juice-shop [https://github.com/bkimminich/juice-shop/releases/tag/v5.0.2 v5.0.2]
  
[16.06.17] juice-shop [https://github.com/bkimminich/juice-shop/releases/tag/v4.0.0 v4.0.0]
+
[07.10.17] juice-shop [https://github.com/bkimminich/juice-shop/releases/tag/v5.0.1 v5.0.1]
  
[12. - 16.06.17] [https://owaspsummit.org/Working-Sessions/Juice-Shop/index.html Juice Shop Track] (at OWASP Summit, London)
+
[11.09.17] juice-shop-ctf [https://github.com/bkimminich/juice-shop-ctf/releases/tag/v2.0.1 v2.0.1]
 
 
[24.05.17] juice-shop [https://github.com/bkimminich/juice-shop/releases/tag/v3.2.0 v3.2.0]
 
 
 
[16.05.17] juice-shop-ctf [https://github.com/bkimminich/juice-shop-ctf/releases/tag/v1.1.2 v1.1.2]
 
  
 
== Installation ==
 
== Installation ==
Line 138: Line 135:
 
== Related Projects ==
 
== Related Projects ==
  
[[OWASP Security Shepherd|OWASP Security Shepherd]]
+
[[OWASP Node js Goat Project|OWASP NodeGoat Project]]
 
 
[[OWASP WebGoat Project|OWASP WebGoat Project]]
 
  
[[OWASP Node js Goat Project|OWASP NodeGoat Project]]
+
[[OWASP DevSlop Project|OWASP DevSlop Project]]
  
 
==Miscellaneous==
 
==Miscellaneous==
Line 167: Line 162:
 
==Contributors==
 
==Contributors==
  
The OWASP Juice Shop has created by [[User:Bjoern Kimminich|Bjoern Kimminich]] and is developed and maintained [https://github.com/bkimminich/juice-shop#credits a team of volunteers]. A live update of project [https://github.com/bkimminich/juice-shop/graphs/contributors contributors is found here].
+
The OWASP Juice Shop has been created by [[User:Bjoern Kimminich|Bjoern Kimminich]] and is developed and maintained by [https://github.com/bkimminich/juice-shop#credits a team of volunteers]. A live update of the project [https://github.com/bkimminich/juice-shop/graphs/contributors contributors is found here].
  
 
== Project Sponsors ==
 
== Project Sponsors ==
Line 173: Line 168:
 
=== Corporate Sponsors ===
 
=== Corporate Sponsors ===
  
{| width="99%" style="background-color:inherit;"
+
{|
| [[Image:xing_logo.png|link=https://corporate.xing.com/en/about-xing/security/|www.xing.com]]
+
|style="padding: 50px 50px 50px 50px" | [[Image:xing_logo.png|link=https://corporate.xing.com/en/about-xing/security/|www.xing.com]]
|
+
|style="padding: 50px 50px 50px 50px" | [[Image:eSailors_Logo.png|link=https://www.esailors.de/|www.esailors.de]]
|-|
 
|
 
|
 
 
|}
 
|}
  
 
=== Individual Sponsors ===
 
=== Individual Sponsors ===
  
* Timo Pagel
+
{|
* Benjamin Pfänder
+
|style="text-align:center; padding-left: 0px;"|Jeroen Willemsen
* Björn Kimminich
+
|style="text-align:center; padding-left: 50px;"|Soron Foster
 +
|-
 +
|style="text-align:center; padding-left: 0px;"|Bendik Mjaaland
 +
|style="text-align:center; padding-left: 50px;"|Timo Pagel
 +
|-
 +
|style="text-align:center; padding-left: 0px;"|Benjamin Pfänder
 +
|style="text-align:center; padding-left: 50px;"|[https://twitter.com/bkimminich Björn Kimminich]
 +
|}
  
 
= Road Map and Getting Involved =
 
= Road Map and Getting Involved =
Line 193: Line 192:
 
==Roadmap==
 
==Roadmap==
  
===Vision for Juice Shop 5.x===
+
===Long-term Goals===
  
====[https://github.com/bkimminich/juice-shop/milestone/2 Technical Evolution]====
+
* migrate to Angular 5 or higher ([https://github.com/bkimminich/juice-shop/issues/165 #165]) or even to another JavaScript frontend framework
 +
* evaluate adding other CTF-frameworks (e.g. FBCTF) to choose from within [https://www.npmjs.com/package/juice-shop-ctf-cli juice-shop-ctf-cli]
 +
* participate with at least 1 student in Google Summer of Code 2018
  
* migrate to Angular 2 ([https://github.com/bkimminich/juice-shop/issues/165 #165]) or even another Javascript frontend framework
+
===Project Maturity Goals===
* migrate to latest Sequelize version ([https://github.com/bkimminich/juice-shop/issues/167 #167]) or even another ORM library
 
** requires to replace the discontinued sequelize-restful module
 
* migrate to Jasmine 2 and Frisby 2 test frameworks ([https://github.com/bkimminich/juice-shop/issues/164 #164])
 
  
===Vision for CTF-Extension 2.x===
+
[[File:Mature_projects.png|100px|left]]
  
* Further automate the setup of [https://ctfd.io CTFd] with Juice Shop via the Node.js CLI at [https://www.npmjs.com/package/juice-shop-ctf-cli https://www.npmjs.com/package/juice-shop-ctf-cli] (e.g. [https://github.com/bkimminich/juice-shop-ctf/issues/10 #10])
+
* Onboard a Co-Project Leader
* Create an OWASP Juice Shop theme for CTFd ([https://github.com/bkimminich/juice-shop-ctf/issues/9 #9])
+
* Have a Core Team of 3+ developers
* Evaluate adding other CTF-frameworks (e.g. FBCTF) to choose from within [https://www.npmjs.com/package/juice-shop-ctf-cli juice-shop-ctf-cli]
+
* Have Juice Shop promoted to [https://www.owasp.org/index.php/OWASP_Project_Inventory#tab=Flagship_Projects Flagship Project] at some point in its lifecycle
  
 
==Getting Involved==
 
==Getting Involved==

Revision as of 19:26, 10 November 2017

Lab big.jpg

OWASP Juice Shop Tool Project

The most trustworthy online shop out there. (dschadow) — The best juice shop on the whole internet! (shehackspurple)

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

Description

JuiceShop Logo.png

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 47+ hacking 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 contain a customizable 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

Architektur JuiceShop.png

Introduction Video

This recording from the OWASP Netherlands Chapter Meeting, 22nd September 2016 gives an introduction to the OWASP Juice Shop and a live demonstration of the application and how to hack it.

Spoiler warning: The last 10 minutes of the video show some live hacking including solutions to a few of the challenges!

Official Companion Guide

Pwning OWASP Juice Shop is the official companion guide for this project. 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. The ebook is published under CC BY-NC-ND 4.0 and is available for free as work-in-progress in HTML, PDF, Kindle and ePub format on GitBook. The latest officially released edition is available for free on LeanPub in PDF, Kindle and ePub format.

Pwning-owasp-juiceshop cover.jpg

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.

News

[02.11.17] juice-shop-ctf v3.0.0

[27.10.17] juice-shop v5.0.3

[25.10.17] juice-shop v5.0.2

[07.10.17] juice-shop v5.0.1

[11.09.17] juice-shop-ctf v2.0.1

Installation

Packaged Distributions

Docker Image

Online Demo (Heroku)

Source Code

GitHub Project

Revision History

Crowdin I18N

CTF-Extension

Documentation

Introduction (Slide Deck)

Documentation (Readme)

Companion Guide (LeanPub)

Companion Guide (HTML)

Support

Community Chat

Issue Tracker

Collaboration

Slack Channel

Mailing List

Social Media

Twitter (@owasp_juiceshop)

Facebook-Page

YouTube Playlist

Merchandise

Apparel (US/DE)

Stickers

Project Leader

Bjoern Kimminich @

Related Projects

OWASP NodeGoat Project

OWASP DevSlop Project

Miscellaneous

OpenHub Project

Classifications

Project Type Files TOOL.jpg
Lab Project Owasp-builders-small.png
Owasp-breakers-small.png
Owasp-defenders-small.png

Contributors

The OWASP Juice Shop has been created by Bjoern Kimminich and is developed and maintained by a team of volunteers. A live update of the project contributors is found here.

Project Sponsors

Corporate Sponsors

www.xing.com www.esailors.de

Individual Sponsors

Jeroen Willemsen Soron Foster
Bendik Mjaaland Timo Pagel
Benjamin Pfänder Björn Kimminich

Juice Shop is already implemented, properly tested and has been promoted and demonstrated or live-hacked on various occasions including OWASP events. It has been successfully used by different companies for inhouse security trainings.

Roadmap

Long-term Goals

  • migrate to Angular 5 or higher (#165) or even to another JavaScript frontend framework
  • evaluate adding other CTF-frameworks (e.g. FBCTF) to choose from within juice-shop-ctf-cli
  • participate with at least 1 student in Google Summer of Code 2018

Project Maturity Goals

Mature projects.png
  • Onboard a Co-Project Leader
  • Have a Core Team of 3+ developers
  • Have Juice Shop promoted to Flagship Project at some point in its lifecycle

Getting Involved

Involvement in the development and promotion of OWASP Juice Shop is actively encouraged! You do not have to be a security expert or a programmer to contribute. Some of the ways you can help are as follows:

  • use Juice Shop in your own hacker or awareness trainings
  • use Juice Shop as a "guinea pig" for your security tools
  • provide ideas for new vulnerabilities and challenges
  • provide feedback via email, chat or by opening an issue
  • help translating the user interface on Crowdin