A powerful Burp Suite extension for automated JWT vulnerability detection and exploitation
Discover JWT implementation flaws before attackers do
JWT Claim Probe is a Burp Suite extension designed to automatically detect and exploit common JWT (JSON Web Token) vulnerabilities. It intercepts HTTP requests, extracts JWT tokens from various locations, modifies claims, and tests multiple attack vectors to identify security weaknesses in real-time.
- ๐ Automatic JWT Detection - Finds tokens in Authorization headers and cookies
- โก Real-time Testing - Tests every request as it flows through Burp's proxy
- ๐ฏ Multiple Attack Vectors - Tests signature bypass, algorithm confusion, and key attacks
- ๐ Smart Issue Reporting - Creates persistent security issues in Burp's Issues tab
- ๐ก๏ธ Duplicate Prevention - Intelligent deduplication to reduce noise
- ๐๏ธ Path Filtering - Focus testing on specific endpoints
- โ๏ธ Highly Configurable - Customizable claims, attack types, and response validation
- What it tests: Modifies JWT claims without re-signing the token
- Detects: Applications that don't verify JWT signatures
- Risk: High - Complete authentication bypass
- What it tests: Sets JWT algorithm to 'none' and removes signature
- Detects: Applications accepting unsigned tokens
- Risk: High - Removes all cryptographic protection
- What it tests: Signs JWT with an empty HMAC key
- Detects: Weak key management or predictable keys
- Risk: High - Allows token forgery
- Burp Suite Professional or Community Edition
- Java 17+ (required for building)
- Gradle (for building from source)
- Download
burp-jwt-claim-probe-1.0.0.jarfrom releases - In Burp Suite: Extensions โ Add โ Select JAR file
- Load the downloaded JAR file
# Clone the repository
git clone <repository-url>
cd jwt_authorized
# Build the extension
./gradlew clean build
# The JAR will be created at:
# build/libs/burp-jwt-claim-probe-1.0.0.jarBuild Requirements:
- Java 17 or higher
- Gradle (wrapper included)
- Enable probe: Toggle the extension on/off
- Check Authorization: Test Bearer tokens in Authorization headers
- Check Cookie: Test tokens in cookies (specify cookie name)
- Attack Selection: Choose which attack vectors to test
- Claim Name: The JWT claim to modify (e.g.,
role,admin,permissions) - Claim Value: The value to inject (e.g.,
admin,true,1) - Claim Type: Data type - String, Boolean, Number, or Null
Control which endpoints get tested:
Enable filtering: โ
Include paths: /api/auth, /admin, /dashboard
Exclude paths: /health, /static, /assets
Examples:
- Include:
/api/(test only API endpoints) - Exclude:
/health, /metrics(skip monitoring endpoints) - Patterns:
/admin/*,*.php,/api/v*(wildcard support)
- HTTP OK Status: Expected status code for successful exploitation (default: 200)
- Prevent Duplicates: Avoid reporting the same issue multiple times
- Duplicate Timeout: Time window for duplicate prevention (default: 60 minutes)
- Install the extension in Burp Suite
- Navigate to the "JWT Claim Probe" tab
- Configure your target claim (e.g.,
adminโtrue) - Enable desired attack vectors
- Browse your target application through Burp's proxy
- Monitor the Issues tab for discovered vulnerabilities
Claim Name: admin
Claim Value: true
Claim Type: Boolean
Attacks: โ All enabled
Claim Name: role
Claim Value: administrator
Claim Type: String
Include Paths: /admin, /dashboard
Include Paths: /api/
Exclude Paths: /api/health, /api/docs
Methods: GET, POST, PUT, DELETE
- JWT Signature Not Verified - Application accepts modified tokens
- JWT Algorithm None Attack - Application accepts unsigned tokens
- JWT HMAC Key Confusion - Application vulnerable to key attacks
[VULN][modify-only] GET http://app.com/admin accepted modified JWT (claim admin=true) at Authorization
[INFO] Duplicate issue suppressed: alg-none for http://app.com/admin
[DEBUG] Path filtered out: /health
All findings are automatically created as security issues in Burp's Issues tab with:
- Detailed descriptions of the vulnerability
- Request/Response evidence
- Remediation guidance
- Severity ratings (HIGH for all JWT bypasses)
src/main/java/jwtprobe/
โโโ JwtClaimProbeExtension.java # Main extension entry point
โโโ ProxyJwtHandler.java # Request interception and testing
โโโ JwtUtils.java # JWT manipulation utilities
โโโ Settings.java # Configuration management
โโโ SettingsPanel.java # User interface
# Clean build
./gradlew clean build
# Build and run tests
./gradlew build test
# Create JAR only
./gradlew jar- Burp Montoya API 2024.11 - Modern Burp extension API
- Java Standard Library - Core functionality
- โ Authorized Testing Only - Only test applications you own or have permission to test
- โ Defensive Security - Use for vulnerability assessment and security hardening
- โ No Malicious Use - Do not use against unauthorized targets
The extension includes several features to avoid detection:
- Anti-loop Protection - Prevents infinite request loops
- Configurable Delays - Built into Burp's request handling
- Scope Respect - Only tests URLs in Burp's defined scope
| Vulnerability | OWASP | CVE Examples | Impact |
|---|---|---|---|
| Signature Bypass | A02:2021 | CVE-2022-39227 | Authentication Bypass |
| Algorithm Confusion | A02:2021 | CVE-2016-10555 | Authentication Bypass |
| Weak Key Management | A02:2021 | CVE-2020-28637 | Token Forgery |
We welcome contributions! Here's how you can help:
- Report Bugs - Open issues for any problems you find
- Suggest Features - Share ideas for new attack vectors or improvements
- Submit PRs - Contribute code improvements or new features
- Documentation - Help improve guides and examples
git clone <repository-url>
cd jwt_authorized
./gradlew build
# Import into your IDE as a Gradle projectThis project is licensed under the MIT License - see the LICENSE file for details.
- PortSwigger for the excellent Burp Suite platform and Montoya API
- JWT Security Community for research and vulnerability disclosure
- Security Researchers who continue to find and report JWT implementation flaws
- Issues: Report bugs and feature requests via GitHub Issues
- Security: For security-related concerns, please report responsibly
- Community: Join discussions about JWT security best practices
Made with โค๏ธ for the security community
Help make JWT implementations more secure, one test at a time