Skip to main content

Python 3.7|3.9 License: GPL v3 release 1.2.1 pypi 1.2.1

jwtXploiter

A tool to test security of JSON Web Tokens. Test a JWT against all known CVEs;

  • Tamper with the token payload: changes claims and subclaims values.
  • Exploit known vulnerable header claims (kid, jku, x5u)
  • Verify a token
  • Retrieve the public key of your target's ssl connection and try to use it in a key confusion attack with one option only
  • All JWAs supported
  • Generates a JWK and insert it in the token header
  • And much, much more!

Wiki

  • Read the wiki! wiki

Installation

N.B. Cloning the repository should be avoided except for development purposes! N.B. Deb package has to be considered beta

  • With rpm:

    wget http://andreatedeschi.uno/jwtxploiter/jwtxploiter-1.2.1-1.noarch.rpm
    sudo rpm --install jwtxploiter-1.2.1-1.noarch.rpm
    

    or, if previous version is installed on your machine

    sudo rpm --upgrade jwtxploiter-1.2.1-1.noarch.rpm
    
  • With pip:

    sudo pip install jwtxploiter
    
  • With deb:

    wget http://andreatedeschi.uno/jwtxploiter/jwtxploiter_1.2.1-1_all.deb
    sudo dpkg -i jwtxploiter_1.2-1_all.deb
    
  • Cloing the repo:

    git clone https://github.com/DontPanicO/jwtXploiter.git
    ./install.sh
    

N.B. python3-pip package is required to install dependencies, be sure to have it installed.

Who this tool is written for?

  • Web Application Penetration Tester / Bug Bounty Hunters

    • This tool has been written with the aim of become a key part of pentesters toolkit.
  • Devs who need to test the secuirty of JWTs used in their applications

  • CTF Players

  • Not For Students

    • Since this tool automates lot of stuff, without force the user to know what's happening under the hood, it won't help you to understand the vulnerabilities it exploits.

To Know

  • For attacks that generates a jwks file, you could find it in the current working directory. Remeber to deletes such files in order to avoid conflicts.

  • For jku/x5u injection that needs to merge two urls (the server vulnerable url and your one), the HERE keyword is required.

  • For redirect attacks the keyword should replace the redirect url, e.g.

  • For jku/x5u injections via HTTP header injection attacks, the HERE keyword sould be appended to the vulnerable parameter, without replacing its value, e.g.

  • Also, in such cases, be sure to pass the server url and your one as comma separated values.

  • '/.well-known/jwks.json' is automatically appended to your url in jku/x5u attacks. So make sure to place the jwks file under this path on your server.

  • If you don't want that happen, use the --manual option, but this option is compatible only with --jku-basic and --x5u-basic so, you will need to manually craft the url and pass it to those options, even for attacks that exploit Open Redirect or HTTP header injection.

  • Look at the wiki for a detailed documentation.

Metadata

Release files for jwtxploiter 1.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jwtxploiter 1.2.1
File Size Uploaded Provenance Actions
jwtxploiter-1.2.1.tar.gz 22.7 kB Without provenance Details for jwtxploiter-1.2.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for jwtxploiter 1.2.1
File Interpreter ABI Platform Actions
jwtxploiter-1.2.1-py3-none-any.whl Python 3 none any Details for jwtxploiter-1.2.1-py3-none-any.whl

Total release size: 56.3 kB

Release files / jwtxploiter-1.2.1.tar.gz

Download URL jwtxploiter-1.2.1.tar.gz
Size 22.7 kB
Tags Source
SHA-256 checksum
How to use checksums
84e0f08e6846e88508e5d90971545caf48b807208ecb6d07a051994fb8365c27
BLAKE2b-256 checksum
How to use checksums
d562470029dc28a98aa4e3550c8f9e139e067683c47709272ffc579c31163bad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.24.0 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1

Release files / jwtxploiter-1.2.1-py3-none-any.whl

Download URL jwtxploiter-1.2.1-py3-none-any.whl
Size 33.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0d5bd1ee1bb4b75aadfdb0cd8994cc23cdb2866e8fc1f00ed588b87bac6a3400
BLAKE2b-256 checksum
How to use checksums
039c954ecb4f12391faced4806e55020cc6053c789bf025072b57ac2a58d15eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.24.0 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1

Security for jwtxploiter 1.2.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page