The full report is available in the Shannon repository at
sample-reports/shannon-report-juice-shop.mdExecutive summary
- Target: OWASP Juice Shop
- Assessment Date: September 2025
- Scope: Authentication, XSS, SQL and Command Injection, SSRF, Authorization testing
- Total vulnerabilities: 20+ critical and high-severity findings
Key accomplishments
Complete authentication bypass
SQL injection enabling admin access without credentials
Database exfiltration
UNION-based SQL injection extracting entire user database including password hashes
Privilege escalation
Created new administrator account through registration workflow bypass
Authorization bypass (IDOR)
Accessed and modified any user’s private data and shopping cart
SSRF exploitation
Internal network reconnaissance via profile image URL vulnerability
Multiple XSS vectors
Reflected XSS via Angular bypass and JSONP callback exploitation
Vulnerability breakdown
Authentication vulnerabilities (Critical)
SQL injection authentication bypass
SQL injection authentication bypass
Location:
Severity: Critical
Impact: Complete admin access bypassExploit:Proof of impact:
Successfully obtained admin JWT token for user ID 1 (
POST /rest/user/login (email field)Severity: Critical
Impact: Complete admin access bypassExploit:
Successfully obtained admin JWT token for user ID 1 (
[email protected]) with role “admin”.Code reference: /routes/login.ts:34 - Direct string interpolation in SQL queryBrute force attacks (no rate limiting)
Brute force attacks (no rate limiting)
Location:
Severity: High
Impact: Account compromise via brute forceMissing rate limiting allows unlimited authentication attempts, enabling credential stuffing and password brute force attacks.
POST /rest/user/loginSeverity: High
Impact: Account compromise via brute forceMissing rate limiting allows unlimited authentication attempts, enabling credential stuffing and password brute force attacks.
MD5 password cracking
MD5 password cracking
Location: User password storage
Severity: High
Impact: Rapid password recovery from database dumpsWeak MD5 hashing with no salt enables instant password recovery. Admin password hash cracked in seconds using online rainbow tables.
Severity: High
Impact: Rapid password recovery from database dumpsWeak MD5 hashing with no salt enables instant password recovery. Admin password hash cracked in seconds using online rainbow tables.
Authorization vulnerabilities (Critical)
Admin role injection during registration
Admin role injection during registration
Location:
Severity: Critical
Impact: Instant admin privilege escalationExploit:Successfully created a new admin account through mass assignment vulnerability.
POST /api/Users/ (registration endpoint)Severity: Critical
Impact: Instant admin privilege escalationExploit:
IDOR - User profile access
IDOR - User profile access
Location:
Severity: High
Impact: Horizontal privilege escalation to any user accountNo authorization check on user ID parameter allows accessing any user’s profile, including email, address, and payment information.
GET /rest/user/{id}Severity: High
Impact: Horizontal privilege escalation to any user accountNo authorization check on user ID parameter allows accessing any user’s profile, including email, address, and payment information.
IDOR - Basket manipulation
IDOR - Basket manipulation
Location:
Severity: High
Impact: Access and modify any user’s shopping cartPredictable basket IDs with no ownership validation enable viewing and modifying other users’ carts.
GET/POST /rest/basket/{id}Severity: High
Impact: Access and modify any user’s shopping cartPredictable basket IDs with no ownership validation enable viewing and modifying other users’ carts.
SQL injection vulnerabilities (Critical)
UNION-based database extraction
UNION-based database extraction
Location:
Severity: Critical
Impact: Complete database compromiseExploit:Successfully extracted:
GET /rest/products/search (q parameter)Severity: Critical
Impact: Complete database compromiseExploit:
- All user emails and password hashes
- User roles (admin, customer)
- Complete database schema
/routes/search.ts:18 - Unsanitized query parameterNoSQL operator injection
NoSQL operator injection
Location: Login and search endpoints
Severity: High
Impact: Authentication bypass and mass data manipulationMongoDB operator injection (
Severity: High
Impact: Authentication bypass and mass data manipulationMongoDB operator injection (
$ne, $gt) enables bypassing authentication and bulk data modification.XSS vulnerabilities (High)
Reflected XSS via Angular bypass
Reflected XSS via Angular bypass
Location: Search functionality
Severity: High
Impact: Session hijacking, credential theftExploit:Successfully bypassed Angular’s sanitization using iframe-based payload.
Severity: High
Impact: Session hijacking, credential theftExploit:
JSONP callback XSS
JSONP callback XSS
Location: JSONP endpoints
Severity: High
Impact: Cross-domain data exfiltrationUnvalidated JSONP callback parameter allows arbitrary JavaScript execution for cross-domain attacks.
Severity: High
Impact: Cross-domain data exfiltrationUnvalidated JSONP callback parameter allows arbitrary JavaScript execution for cross-domain attacks.
SSRF vulnerabilities (High)
Profile image URL SSRF
Profile image URL SSRF
Location:
Severity: High
Impact: Internal network reconnaissance, cloud metadata accessExploit:Successfully accessed:
POST /profile/image/urlSeverity: High
Impact: Internal network reconnaissance, cloud metadata accessExploit:
- Internal services (Solr, Redis)
- Cloud metadata endpoints
- File system via file:// protocol
Additional findings
XXE file disclosure
XXE file disclosure
Location: XML upload endpoints
Severity: High
Impact: Local file read accessExternal entity injection in XML parser enables reading arbitrary files from the server file system.
Severity: High
Impact: Local file read accessExternal entity injection in XML parser enables reading arbitrary files from the server file system.
YAML injection DoS
YAML injection DoS
Location: Configuration upload
Severity: Medium
Impact: Denial of serviceUnsafe YAML deserialization allows resource exhaustion attacks.
Severity: Medium
Impact: Denial of serviceUnsafe YAML deserialization allows resource exhaustion attacks.
Business logic bypass
Business logic bypass
Location: Deluxe membership, checkout flow
Severity: High
Impact: Payment bypass, order manipulationMultiple business logic flaws enable:
Severity: High
Impact: Payment bypass, order manipulationMultiple business logic flaws enable:
- Free deluxe membership activation
- Checking out other users’ carts
- Negative pricing via coupon stacking
Impact summary
Statistics
| Metric | Value |
|---|---|
| Total vulnerabilities | 20+ |
| Critical severity | 8 |
| High severity | 12+ |
| Runtime | 1.5 hours |
| API cost | ~$50 USD |
| False positives | 0 |
Related resources
Full report
View complete report in GitHub
OWASP Juice Shop
Official Juice Shop repository
Run your own test
Test Shannon against Juice Shop
Benchmark results
96.15% success rate on XBOW