JWTLens automatically detects and exploits JWT vulnerabilities with 56 security checks — passive scanning, active attacks, secret extraction, and a built-in token forge.
JWTLens is a Burp Suite extension that automatically intercepts JWT tokens in your HTTP traffic and tests them against the full JWT attack surface — no manual effort required.
23 checks run automatically as you browse — detecting token leakage, weak cookies, missing claims, sensitive data exposure, and dangerous header parameters. Zero extra traffic.
33 attack vectors including algorithm confusion, signature bypass, KID injection (SQLi, path traversal, command injection), header injection, claim tampering, and known CVEs.
Passively monitors all responses for hardcoded JWT secrets, private keys, JWKS structures, and Base64-encoded secrets. Discovered secrets are automatically fed into brute force attacks.
Built-in token editor — paste any JWT, edit header and payload as JSON, sign with any algorithm and secret, copy as cURL or Python. Like jwt.io but inside Burp Suite.
Every attack vector from the JWT security cheatsheet, automated and integrated into your Burp workflow.
The most impactful JWT attack — properly implemented. JWTLens fetches real public keys from JWKS endpoints, OpenID configuration, and passively extracted keys. Tests each key in both DER and PEM encoding as HMAC secret.
// Original token (RS256)
{
"alg": "RS256",
"typ": "JWT"
}
// JWTLens attack (HS256 with public key)
{
"alg": "HS256",
"typ": "JWT"
}
// Signed with server's RSA public key
// as HMAC secret = valid signature
The kid (Key ID) parameter is a goldmine for injection attacks. JWTLens tests four injection categories with multiple payloads each, all properly signed so the server processes them.
// KID Path Traversal
{
"kid": "../../../dev/null",
"alg": "HS256"
}
// Signed with empty string (null file)
// KID SQL Injection
{
"kid": "' UNION SELECT 'secret' --",
"alg": "HS256"
}
// Signed with "secret" as key
JWTLens silently monitors every response for JWT-related secrets. Found secrets are automatically prepended to the brute force wordlist and public keys are fed into algorithm confusion attacks.
// Found in app.bundle.js
const JWT_SECRET = "auth_token_s3cr3t";
// Found in config.json response
{
"jwtSecret": "my-super-secret-key"
}
// Found in /api/debug endpoint
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA0Z3VS5JJcds...
Organized by attack category. Every check reports with proper severity, confidence, and remediation guidance.
Two dedicated Burp tabs — a findings dashboard and a live token editor — seamlessly integrated into your workflow.
In-depth guides on JWT attacks, testing methodology, and how to exploit common vulnerabilities.
56 checks, testing methodology, and every JWT attack vector explained. The definitive guide for pentesters.
Read guide →The highest-impact JWT attack. How it works, how to obtain the public key, and how JWTLens automates it.
Read guide →4 injection categories via the kid header parameter. Path traversal, SQL injection, command injection, and LDAP injection.
Read guide →Compared to existing JWT Burp extensions, JWTLens covers more attack vectors with better automation.
Fetches real public keys from well-known endpoints for algorithm confusion — not just generated key pairs
Passively discovers hardcoded secrets from JS/JSON responses and auto-feeds them into attacks
Extracts and tests JWTs from both requests and response bodies (login endpoints, config APIs)
4 injection categories (path traversal, SQLi, command injection, LDAP) with multiple payloads each
Upload your own wordlist for brute force, append or replace the built-in 200+ secret list
Tracks unique JWT per host to prevent scanning the same token multiple times
Extensions → Installed → Add → Select JAR file. Java 17+ required.
Browse normally. Passive checks run automatically. Right-click any request for active attacks.
JWTLens is free, open source, and built for security professionals.