Real attacks against OWASP Juice Shop — a deliberately weak web app we host. No customer data involved. This page is public and shareable.
Attack methodology
OWASP A05 — Confidential acquisitions document publicly readable→ https://juice-shop.sandbox.doesitdefend.ai/ftp/acquisitions.mda05-ftp-acquisitions-001Probe a05-ftp-acquisitions-001 confirmed vulnerable. Indicator matched: status=200. Confidential acquisitions document publicly readable
Same engine, two paths. Pick the one that matches what you want to test.
The Free plan covers hosted sandbox targets — Juice Shop and VulnBot. Account required. You get the same evidence pack and Sigma rules, shareable with a single link.
GET /ftp/acquisitions.md
HTTP 200 — # Planned Acquisitions > This document is confidential! Do not distribute! Our company plans to acquire several competitors within the next year. This will have a significant stock market impact as we will elaborate in detail in the following paragraph: Lorem ipsum do…
PATCHDesabilitar listagem de diretórios (autoindex off em nginx, Options -Indexes em Apache). Mover arquivos sensíveis para fora do webroot. Aplicar policy de "deny by default" em arquivos estáticos.
title: "OWASP A05 — Security Misconfiguration (directory listing / sensitive file exposure) — OWASP A05 — Confidential acquisitions document publicly readable"
id: "49e56c5f-aa65-454e-8a64-f9067e81d1e3"
status: experimental
description: |
Auto-generated starter rule from DoesItDefend finding fnd_9f3c6c19d5cbd6e1c186ccc1.
Detection gap observed:
Probe a05-ftp-acquisitions-001 confirmed vulnerable. Indicator matched: status=200. Confidential acquisitions document publicly readable
Recommended defense:
Desabilitar listagem de diretórios (autoindex off em nginx, Options -Indexes em Apache). Mover arquivos sensíveis para fora do webroot. Aplicar policy de "deny by default" em arquivos estáticos.
author: "DoesItDefend (auto-generated)"
references:
- "doesitdefend://finding/fnd_9f3c6c19d5cbd6e1c186ccc1"
- "https://attack.mitre.org/techniques/T1083/"
date: "2026-07-25"
tags:
- attack.t1083
- doesitdefend.severity.medium
logsource:
product: webserver
category: access
detection:
selection:
cs-uri-stem|contains:
- /ftp
- /.git
- /.env
- /encryptionkeys
http_status: 200
condition: selection
falsepositives:
- "Intentionally-public asset directories"
level: mediumStarter rule — tune thresholds/filters for your environment before deploying
OWASP A01 — Administration UI route reachable without auth check on frontend→ https://juice-shop.sandbox.doesitdefend.ai/#/administrationa01-admin-public-001Probe a01-admin-public-001 confirmed vulnerable. Indicator matched: status=200. Administration UI route reachable without auth check on frontend
GET /#/administration
HTTP 200 — OWASP Juice Shop <meta name="description" cont…
PATCHAplicar verificação de autorização por recurso (não apenas autenticação). Validar ownership via tenant_id/user_id antes de retornar dados. Implementar rate-limit por usuário em endpoints de enumeração.
title: "OWASP A01 — Broken Access Control (IDOR / admin-route exposure) — OWASP A01 — Administration UI route reachable without auth check on frontend"
id: "e3aee626-13cb-4fe9-9de3-0364a9167b8b"
status: experimental
description: |
Auto-generated starter rule from DoesItDefend finding fnd_274f87b785bcc98e99644e61.
Detection gap observed:
Probe a01-admin-public-001 confirmed vulnerable. Indicator matched: status=200. Administration UI route reachable without auth check on frontend
Recommended defense:
Aplicar verificação de autorização por recurso (não apenas autenticação). Validar ownership via tenant_id/user_id antes de retornar dados. Implementar rate-limit por usuário em endpoints de enumeração.
author: "DoesItDefend (auto-generated)"
references:
- "doesitdefend://finding/fnd_274f87b785bcc98e99644e61"
- "https://attack.mitre.org/techniques/T1190/"
date: "2026-07-25"
tags:
- attack.t1190
- doesitdefend.severity.high
logsource:
product: webserver
category: access
detection:
selection:
cs-uri-stem|contains:
- /api/Users
- /rest/basket/
- /api/Feedbacks/
- /administration
- /ftp/
condition: selection
falsepositives:
- "Legitimate admin access from allow-listed IPs"
level: highStarter rule — tune thresholds/filters for your environment before deploying
OWASP A01 — Poison-null byte path traversal bypasses .md whitelist→ https://juice-shop.sandbox.doesitdefend.ai/ftp/package.json.bak%2500.mda01-pathtraversal-ftp-001Probe a01-pathtraversal-ftp-001 confirmed vulnerable. Indicator matched: body~"dependencies". Poison-null byte path traversal bypasses .md whitelist
GET /ftp/package.json.bak%2500.md
HTTP 200 — { "name": "juice-shop", "version": "6.2.0-SNAPSHOT", "description": "An intentionally insecure JavaScript Web Application", "homepage": "http://owasp-juice.shop", "author": "Björn Kimminich (https://kimminich.de)", "contributors": [ "Björn…PATCHAplicar verificação de autorização por recurso (não apenas autenticação). Validar ownership via tenant_id/user_id antes de retornar dados. Implementar rate-limit por usuário em endpoints de enumeração.
title: "OWASP A01 — Broken Access Control (IDOR / admin-route exposure) — OWASP A01 — Poison-null byte path traversal bypasses .md whitelist"
id: "d5e2c749-ffc0-48e6-8713-7f05af702c6a"
status: experimental
description: |
Auto-generated starter rule from DoesItDefend finding fnd_caedf693d824bd47c3a64fb7.
Detection gap observed:
Probe a01-pathtraversal-ftp-001 confirmed vulnerable. Indicator matched: body~"dependencies". Poison-null byte path traversal bypasses .md whitelist
Recommended defense:
Aplicar verificação de autorização por recurso (não apenas autenticação). Validar ownership via tenant_id/user_id antes de retornar dados. Implementar rate-limit por usuário em endpoints de enumeração.
author: "DoesItDefend (auto-generated)"
references:
- "doesitdefend://finding/fnd_caedf693d824bd47c3a64fb7"
- "https://attack.mitre.org/techniques/T1190/"
date: "2026-07-25"
tags:
- attack.t1190
- doesitdefend.severity.high
logsource:
product: webserver
category: access
detection:
selection:
cs-uri-stem|contains:
- /api/Users
- /rest/basket/
- /api/Feedbacks/
- /administration
- /ftp/
condition: selection
falsepositives:
- "Legitimate admin access from allow-listed IPs"
level: highStarter rule — tune thresholds/filters for your environment before deploying
OWASP A05 — FTP directory listing exposed at /ftp→ https://juice-shop.sandbox.doesitdefend.ai/ftpa05-ftp-listing-001Probe a05-ftp-listing-001 confirmed vulnerable. Indicator matched: body~"package.json". FTP directory listing exposed at /ftp
GET /ftp
HTTP 200 — listing directory /ftp * { margin: 0; padding: 0; outline: 0; } body { padding: 80p…PATCHDesabilitar listagem de diretórios (autoindex off em nginx, Options -Indexes em Apache). Mover arquivos sensíveis para fora do webroot. Aplicar policy de "deny by default" em arquivos estáticos.
title: "OWASP A05 — Security Misconfiguration (directory listing / sensitive file exposure) — OWASP A05 — FTP directory listing exposed at /ftp"
id: "2ff22d52-d80f-44fd-aaef-9f9b736b45fd"
status: experimental
description: |
Auto-generated starter rule from DoesItDefend finding fnd_b62232809b9c2506791c81ad.
Detection gap observed:
Probe a05-ftp-listing-001 confirmed vulnerable. Indicator matched: body~"package.json". FTP directory listing exposed at /ftp
Recommended defense:
Desabilitar listagem de diretórios (autoindex off em nginx, Options -Indexes em Apache). Mover arquivos sensíveis para fora do webroot. Aplicar policy de "deny by default" em arquivos estáticos.
author: "DoesItDefend (auto-generated)"
references:
- "doesitdefend://finding/fnd_b62232809b9c2506791c81ad"
- "https://attack.mitre.org/techniques/T1083/"
date: "2026-07-25"
tags:
- attack.t1083
- doesitdefend.severity.high
logsource:
product: webserver
category: access
detection:
selection:
cs-uri-stem|contains:
- /ftp
- /.git
- /.env
- /encryptionkeys
http_status: 200
condition: selection
falsepositives:
- "Intentionally-public asset directories"
level: mediumStarter rule — tune thresholds/filters for your environment before deploying
OWASP A09 — Encryption keys directory listing leaks premium.key→ https://juice-shop.sandbox.doesitdefend.ai/encryptionkeysa09-secret-keys-001Probe a09-secret-keys-001 confirmed vulnerable. Indicator matched: body~"premium.key". Encryption keys directory listing leaks premium.key
GET /encryptionkeys
HTTP 200 — listing directory /encryptionkeys * { margin: 0; padding: 0; outline: 0; } body { p…PATCHNão expor diretórios de keys/secrets via webroot. Rotacionar chaves comprometidas. Centralizar gestão de segredos em Secret Manager/Vault.
title: "OWASP A09 — Logging/Security Logging Failure (key/secret directory exposure) — OWASP A09 — Encryption keys directory listing leaks premium.key"
id: "a26d7775-a4a0-4ac2-9096-752e54ea3c73"
status: experimental
description: |
Auto-generated starter rule from DoesItDefend finding fnd_e2f8947081ba132f2fe7558e.
Detection gap observed:
Probe a09-secret-keys-001 confirmed vulnerable. Indicator matched: body~"premium.key". Encryption keys directory listing leaks premium.key
Recommended defense:
Não expor diretórios de keys/secrets via webroot. Rotacionar chaves comprometidas. Centralizar gestão de segredos em Secret Manager/Vault.
author: "DoesItDefend (auto-generated)"
references:
- "doesitdefend://finding/fnd_e2f8947081ba132f2fe7558e"
- "https://attack.mitre.org/techniques/T1552/001/"
date: "2026-07-25"
tags:
- attack.t1552.001
- doesitdefend.severity.high
logsource:
product: webserver
category: access
detection:
response_keywords:
- premium.key
- private.key
- id_rsa
- .pem
condition: response_keywords
falsepositives:
- "Public example keys clearly marked as canaries"
level: highStarter rule — tune thresholds/filters for your environment before deploying
Bring your own URL. DNS ownership proof required. The same conversation, detection rules and replay-validated fix list — Starter plan or above.
Show your LLM security score in your README, docs, or marketing page. The badge image is regenerated every 5 minutes from this run's data.
Markdown
[](https://doesitdefend.ai/demo/runs/run_0f55af44e005c92d9df0970c)HTML
<a href="https://doesitdefend.ai/demo/runs/run_0f55af44e005c92d9df0970c"><img src="https://api.doesitdefend.ai/v1/badges/runs/run_0f55af44e005c92d9df0970c.svg" alt="LLM security badge"></a>