Este desafio foi criado com auxílio da IA Manus, para fins de aprendizado e totalmente inspirado no artigo original.
Bem-vindo ao desafio de CTF "Falhas Criptográficas"! Este desafio foi projetado para testar suas habilidades em segurança de aplicações web, com foco em vulnerabilidades criptográficas comuns.
A SecureAuth Corp, uma empresa de tecnologia de ponta, desenvolveu um sistema de autenticação proprietário que utiliza "criptografia de nível militar" para proteger as sessões de seus usuários. Como um especialista em segurança, você foi contratado para realizar um teste de penetração neste sistema.
Seu objetivo é duplo:
- Obter acesso administrativo ao sistema.
- Descobrir a chave secreta usada para proteger as sessões.
Ao completar este desafio, você terá praticado as seguintes habilidades:
- Enumeração e Reconhecimento: Análise de aplicações web em busca de pontos de entrada.
- Análise de Código-Fonte: Identificação de falhas lógicas em código PHP.
- Criptoanálise: Compreensão e exploração de fraquezas em esquemas de criptografia customizados.
- Manipulação de Cookies: Falsificação de cookies para bypass de autenticação e escalação de privilégios.
- Ataques de Padding Oracle: Extração de informações secretas (como chaves de criptografia) de forma otimizada.
- Automação de Exploits: Desenvolvimento de scripts em Python para automatizar ataques complexos.
Para executar este desafio, você precisará ter o Docker e o Docker Compose instalados em sua máquina.
Se você quiser executar os scripts de exploração, precisará apenas de:
pip3 install requests
Nota importante: O módulo crypt
usado nos exploits é nativo do Python (não precisa instalar). Ele está disponível por padrão em Linux/macOS.
crypt
não funciona nativamente no Windows. Você precisa usar:
- WSL (Recomendado):
wsl --install
no PowerShell - Docker: Usar os containers do projeto
- VM Linux: VirtualBox ou VMware
📖 Guia completo para Windows: docs/WINDOWS_USERS.md
Para mais detalhes, consulte: docs/INSTALACAO_DEPENDENCIAS.md
-
Clone este repositório (ou descompacte o arquivo .zip) em sua máquina local.
-
Navegue até o diretório do projeto pelo terminal:
cd ctf-crypto-failures
-
Inicie o ambiente do desafio usando o Docker Compose:
docker-compose up -d --build
-
Acesse a aplicação: Após a conclusão do build, a aplicação web estará disponível em:
A partir daqui, sua jornada começa. Investigue a aplicação, procure por falhas e explore-as para capturar as duas flags.
- Flag 1: Obtida ao conseguir acesso como administrador.
- Flag 2: É a própria chave secreta do sistema.
Este desafio foi projetado para ser realista, portanto, não há dicas explícitas na aplicação. No entanto, se precisar de uma pequena ajuda, pense nos seguintes conceitos:
- Desenvolvedores às vezes são descuidados e deixam para trás arquivos que não deveriam estar em produção.
- O que acontece quando um sistema de criptografia divide os dados em blocos independentes? O que você, como atacante, pode controlar?
- O
User-Agent
em uma requisição HTTP é apenas um cabeçalho informativo ou pode ser usado para algo mais... estratégico?
O diretório exploits/
contém scripts que demonstram a solução para cada uma das flags, além de um script completo que automatiza a captura de ambas.
Para executar o exploit completo:
python3 exploits/exploit_completo.py http://localhost:8080
Recomendamos fortemente que você tente resolver o desafio por conta própria antes de consultar a solução.
Quando terminar, você pode parar e remover os containers do Docker com o seguinte comando:
docker-compose down
Boa sorte e divirta-se!