Skip to content

KeyValueSoftwareSystems/juno

Repository files navigation

What

Juno is a burp extension to attack JWT tokens quickly and easily.

Table of contents:

Why

JWTs have a signature which can be verified server-side, rendering forging a JWT impractical. However, a JWT has the signature verification algorithm specified in its own header section. A vulnerable server tends to accept none as a valid option and hence bypass signature verification.

How

To check whether APIs on vulnerable.com are vulnerable to the above attack, one would have to:

  1. Log in to vulnerable.com
  2. Extract the JWT
  3. Split the JWT
  4. Decode the header section of the JWT (base64 decode)
  5. Replace the alg parameter value with none
  6. Encode the header section back (base64 encode)
  7. Rejoin the JWT
  8. Send a request with the forged token
  9. See if it was successful
  10. Repeat steps 5 through 7 with None, NONE, nONE and so on.

Juno performs everything above (except step 0) for you.

Building

Requirements

  • JDK 17+

Steps

git clone https://github.com/KeyValueSoftwareSystems/juno.git
cd juno
./gradlew build

The target jar file can be found in ./lib/build/libs

Installation

Follow these steps to install Juno from a JAR file onto Burp suite:

1. Go to Extensions > Installed and click Add.
2. Under Extension Details, click Select file and locate the ```jar``` file.
3. Click Next.
4. Wait for the extension to install. Notice that the extension is now listed in the Installed tab.

Quick start

  1. Pick a request with a JWT in it.

image

  1. Send it to Juno.
  2. Click on Auto §

image

  1. Click on Start attack to launch the attack & hope for the best!

image

Additional options

  • If needed, Add § and Clear§ can be used to manually select the JWT token and clear the selection respectively.

image

  • If time is of the essence, increase the number of threads for faster execution.

image

Licence

This project is licensed under the terms of the Apache Licence 2.0, as mentioned in the COPYING file in the root directory.

References