Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 9 additions & 3 deletions brute-jwt.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,25 @@
#!/usr/bin/python

import jwt;
import base64
import json
import jwt
from termcolor import colored

print colored("Script to brute-force JWT secret token",'white')
encoded = raw_input("Enter encoded payload: ")

header_base64, remainder = encoded.split(b'.', 1)
header_json = base64.b64decode(header_base64)
algorithm = json.loads(header_json.decode('utf-8')).get('alg')
print colored('Detected algorithm [' + algorithm + ']','green')

with open('secret.txt') as secrets:
for secret in secrets:
try:
payload = jwt.decode(encoded, secret.rstrip(), algorithms=['HS256'])
payload = jwt.decode(encoded, secret.rstrip(), algorithm)
print colored('Success! Token decoded with ....[' + secret.rstrip() + ']','green')
break
except jwt.InvalidTokenError:
print colored('Invalid Token .... [' + secret.rstrip() + ']','red')
except jwt.ExpiredSignatureError:
print colored('Token Expired ....[' + secret.rstrip() + ']','red')
print colored('Token Expired ....[' + secret.rstrip() + ']','red')