Skip to main content

A cli tool to test security of JSON Web Token

Project description

Python 3.7|3.9 License: GPL v3

jwtXploiter

A tool to test the security of json web token. 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

The github repository provides a detailed wiki to be used as documentation. WIKI Even if the wiki covers all use cases, additional documentation on readthedocs will be provied soon.

Installation

N.B. Cloing the repository should be avoided except for contributors.

A DEBIAN PACKAGE IS GOING TO BE PROVIDED SOON

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 will find it in the current working directory.

  • 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 documentation for more detailed examples.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jwtxploiter-1.0.tar.gz (21.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jwtxploiter-1.0-py3-none-any.whl (32.0 kB view details)

Uploaded Python 3

File details

Details for the file jwtxploiter-1.0.tar.gz.

File metadata

  • Download URL: jwtxploiter-1.0.tar.gz
  • Upload date:
  • Size: 21.0 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for jwtxploiter-1.0.tar.gz
Algorithm Hash digest
SHA256 8cdb2f62ad8a9fbce6c0c9bb49e03b61eb856b6ecadec80bf4eddd533c559a93
MD5 23b77ef9841f53e06e822393ff9eb508
BLAKE2b-256 06d8bdeb70732199b05d8f6a7d26ec3d3815d84cecdac49ce20afd92ca82e9e5

See more details on using hashes here.

File details

Details for the file jwtxploiter-1.0-py3-none-any.whl.

File metadata

  • Download URL: jwtxploiter-1.0-py3-none-any.whl
  • Upload date:
  • Size: 32.0 kB
  • Tags: Python 3
  • Uploaded using 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

File hashes

Hashes for jwtxploiter-1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9c52453ebcc0d09707cf00bb54bb2ea7e406c32c2700f13fe468f84df81c8fa2
MD5 3d33c639b6a43f8dd62503bbed73aaf9
BLAKE2b-256 a9473d1551725655c1b89663710c7b062be9c46c144712186f0a7658e4d30803

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page