Inicie a máquina, hackeie o sistema e encontre as flags escondidas para completar este desafio e ganhar XP!
A confusão de algoritmo de JSON Web Token (JWT) é uma classe de vulnerabilidade crítica que explora como as aplicações lidam com a verificação de assinatura JWT. Quando um servidor é configurado para aceitar múltiplos algoritmos de assinatura sem validação adequada, atacantes podem manipular o cabeçalho de algoritmo do token para enganar o servidor e fazê-lo usar um método de verificação diferente do pretendido - potencialmente permitindo contorno completo da autenticação. O JWT hacking através de confusão de algoritmo é um dos ataques JWT mais impactantes descobertos até hoje.
Os JWTs suportam duas categorias principais de algoritmos de assinatura: simétricos (baseados em HMAC, como HS256) e assimétricos (baseados em RSA ou ECDSA, como RS256). Com RS256, o servidor assina tokens usando uma chave privada e os verifica usando a chave pública correspondente. Com HS256, a mesma chave secreta é usada tanto para assinar quanto para verificar. Essa distinção é a base do ataque de confusão de algoritmo.
O ataque explora uma interação perigosa entre esses tipos de algoritmo. Se um servidor usa RS256, sua chave pública geralmente está disponível (às vezes até publicada). Um atacante pode alterar o algoritmo no cabeçalho JWT de RS256 para HS256, então assinar o token modificado usando a chave pública do servidor como o segredo HMAC. Quando o servidor processa esse token, uma implementação vulnerável lê o algoritmo do cabeçalho do token, vê HS256 e usa sua chave pública RSA como chave de verificação HMAC - correspondendo exatamente à assinatura do atacante. Isso permite que o atacante falsifique tokens com claims arbitrários.
Vulnerabilidades de confusão de algoritmo foram encontradas em bibliotecas JWT importantes de múltiplas linguagens de programação, incluindo PyJWT para Python, node-jsonwebtoken para Node.js e firebase/php-jwt para PHP. Quando exploradas, atacantes ganham a capacidade de falsificar tokens administrativos, escalar privilégios, se passar por qualquer usuário e contornar completamente a autenticação. A natureza generalizada dessa vulnerabilidade levou a avisos de segurança significativos e atualizações de bibliotecas em todo o ecossistema JWT.
Implementações JWT seguras devem especificar explicitamente o algoritmo esperado no lado do servidor em vez de confiar no algoritmo declarado no cabeçalho do token. Bibliotecas devem ser configuradas para rejeitar valores de algoritmo inesperados, e aplicações nunca devem permitir troca de algoritmo entre tipos simétricos e assimétricos. Manter bibliotecas JWT atualizadas e seguir melhores práticas de segurança para manipulação de tokens previne ataques de confusão de algoritmo.
Crie uma conta gratuita e pratique cibersegurança.
Crie uma conta gratuita para iniciar seu próprio servidor dedicado, enviar flags e ganhar XP no ranking.
Começar a Hackear GrátisLabs que compartilham habilidades semelhantes
Escolha como deseja começar
Entre na sua conta