rce-serialization-dotnet

Juice Shop

Juice Shop is an intentionally vulnerable web site supported and maintained by OWASP. It’s available publicly at:

https://demo.owasp-juice.shop/

Most exercises can be completed against the Juice Shop. More invasive exploit challenges require a local installation.

Installing Linux

WSL Install

Installing Juice Shop Locally

Running Juice Shop locally requires docker and Windows Subsystem for Linux.

Docker Install

To install Juice Shop a local docker container, see Juice Shop Install which creates a local running instance at https://localhost:88 and http://localhost:88 hosted on docker on Ubuntu.

Reconnaissance

Intelligence can be gathered from public APIs and websites using public information. This is typically referred to as OSINT.

Tool Description
nmap network scanning
amass Find registered subdomains
nikto Find vulnerable headers and directories
Kiterunner Find vulnerable routes
securityheaders.com Validate security headers

Penetration Testing

Penetration testing can be performed manually; however, tools ease the effort. These exercises use ZAP and Burp Suite Community Edition

Zed Attack Proxy is used for these exercises. Please follow these instructions to install and configure ZAP:

Zed Attack Proxy Installation

Burp Suite is a common tool used by professional penetration testers. A free version is available and can be used for these exercises as well. Please follow the instructions to Install and Configure Burp Suite Community Edition.

These exercises can use the public Juice Shop site or the local docker instance. The local instance is preferred as other users may compromise or take down the public site.

CSP Header Vulnerability

In the Architecture overview you were told that the Juice Shop uses a modern Single Page Application frontend. That was not entirely true.

CSP Header Vulnerability solution

SQL Injection

Use ZAP or browser network inspection to find an endpoint that is vulnerable to SQL injection. Compromise the endpoint to exfiltrate user data.

SQL Injection solution

Password Cracking

The SQL Injection exercise exposed details about user accounts. Use the exposed information to log as the admin@juice-sh.op user.

Cracking Passwords solution

Mass Assignment

Mass assignment occurs when a property of a JSON or request payload is available in an unintended security context.

Review the requests and responses that are generate when creating a user. There may be a mass assignment vulnerability that allows a new user to elevate their permissions.

Mass Assignment solution