Trilhas
Sequências curtas de desafios, do mais fácil ao mais difícil, cada um com o conceito que ensina. Siga a ordem ou vá direto ao que quiser.
Seu progresso não está sendo salvo
Crie uma conta grátis para enviar flags e continuar de onde parou.
Para começar
Do zero. Se você nunca jogou um CTF, comece pela primeira.
Primeiros passos
O que é uma flag e as codificações que aparecem em todo lugar.
- Formato de flag
- ASCII: letras como números
- Hexadecimal
- Base64
- +3
Terminal Linux
Do primeiro cd ao arquivo embrulhado em camadas, aprendendo a se virar na linha de comando.
- O terminal
- Nomes de arquivo encrencados
- Procurar com grep e find
- Pipes, um comando alimenta o outro
- +6
Golpes digitais
Provar, com a evidência na mão, o que há de errado no SMS, no e-mail, no boleto e no Pix que chegaram.
- Anatomia de uma URL
- Engenharia social
- Autenticação de e-mail: SPF, DKIM e DMARC
- Cabeçalhos de e-mail
- +4
Senhas
Como as senhas são guardadas, por que algumas caem e como defendê-las.
- Guardar o hash, não a senha
- Funções de hash
- Reconhecer o tipo de hash
- Força de uma senha
- +7
Criptografia clássica
Cifras com chave, e por que chave pequena não protege nada.
- Cifra de César
- Cifras de substituição
- Cifra de Vigenère
- XOR
- +6
Forense de arquivos
Arquivos mentem sobre o que são e guardam mais do que mostram.
- Assinatura de arquivo
- Arquivos ZIP
- Metadados
- Texto dentro de binários
- +5
Web
O site mostra mais do que planejava, e o navegador obedece a você.
- Código-fonte da página
- Arquivos que o site não mostra
- Cookies
- IDOR: trocar o número no endereço
- +6
Redes
Leia capturas de tráfego e descubra quem falou com quem, e o que foi dito.
- Captura de pacotes
- Camadas e endereços
- Senha em texto claro
- Conexões e fluxos TCP
- +11
Infraestrutura da internet
Pergunte à própria internet quem é quem, com DNS, whois, DNSSEC, relógios e sistemas autônomos.
- Consultas DNS com dig
- DNS: perguntas e respostas
- Cabeçalhos de e-mail
- Whois e RDAP
- +6
Para ir além
Pedem o básico das trilhas iniciais e, às vezes, um pouco de Python.
Criptografia moderna
Hash, AES e RSA por dentro, e o descuido que derruba uma peça forte.
- Funções de hash
- Integridade de arquivos
- Texto como número
- Hexadecimal
- +4
Defesa
Ler os registros que um ataque deixa para trás e escrever o que aconteceu.
- Análise de logs
- Log de autenticação
- Ataque de força bruta
- Linha do tempo do incidente
- +12
Lógica
Quebra-cabeças que se resolvem pensando com calma e, às vezes, com um script pequeno.
- Ler código à mão
- Máquina de instruções
- Padrões e sequências
- Filtrar dados grandes
- +2
Engenharia reversa
Descubra o que um programa faz sem ter o código que o autor escreveu, e preveja o que ele chama de aleatório.
- Ler código à mão
- Semente de números pseudoaleatórios
- Desmontar e descompilar
- Prever um gerador pseudoaleatório
- +2
Esteganografia
Mensagens escondidas dentro de imagens e sons, onde ninguém pensa em procurar.
- Texto dentro de binários
- Assinatura de arquivo
- Captura de pacotes
- SSTV, imagem transmitida como som
- +5
Injeção de SQL
Quando o site mistura o que você digita com o comando do banco, o texto vira comando.
- Injeção de SQL
- Entrada que vira comando
- Burlar o login
- Ler outra tabela com UNION
- +3
Cross-site scripting
O site devolve o que você digitou, o navegador o trata como código, e o seu JavaScript passa a rodar na página de outra pessoa.
- XSS refletido
- O contexto da saída
- XSS armazenado
- Contornar um filtro ingênuo
- +3
SSRF
Você dá uma URL ao servidor, e é o servidor que vai buscá-la, de dentro da rede dele.
- O que é SSRF
- Serviços internos e localhost
- Metadados de nuvem
- Contornando listas de permissão
- +3
Injeção de comando
Quando o site entrega o que você digita para o shell, o seu texto vira um comando do sistema.
- Injeção de comando
- Entrada que vira comando
- Metacaracteres do shell
- Injeção de argumento
- +2
XXE
O servidor confia no XML que você manda, e um XML pode mandar o servidor ler arquivos.
- XML, DTD e entidades
- Entidade externa
- Billion laughs
- Entidades de parâmetro e fora de banda
- +3
Injeção de template no servidor
Quando o site cola o que você escreve dentro do template, o seu texto vira código do template.
- Entrada que vira comando
- Injeção de template
- Identificar o motor
- O contexto do template
- +4
Autenticação e tokens
Como um site sabe quem é você, e o que acontece quando ele confia no crachá errado.
- Anatomia de um JWT
- O algoritmo none
- Conferir um token direito
- Segredo HMAC fraco
- +4
Desserialização insegura
Os bytes que o cliente manda viram um objeto no servidor, e o servidor confia nesse objeto como se ele mesmo tivesse criado.
- O que é desserialização insegura
- Base64
- Adulterar um dado serializado
- Assinatura presente mas não verificada
- +3
Segurança de aplicações com LLM
Quando o app junta a instrução dele e o texto de quem escreve num campo só, quem escreve manda no modelo.
- Entrada que vira comando
- Injeção de prompt
- Vazamento do prompt de sistema
- Segredo no contexto
- +4
Configuração insegura
O sistema é seguro, mas veio ligado errado: senha de fábrica, pasta aberta e detalhe de mais.
- Credencial de fábrica
- Listagem de diretório
- Backup exposto
- Erro detalhado
- +2
Cadeia de suprimentos de software
Seu programa roda o código de dezenas de pacotes que você nunca leu. Um deles basta.
- Cadeia de suprimentos de software
- Aviso de vulnerabilidade
- Typosquatting de pacotes
- Árvore de dependências
- +4
Controle de acesso quebrado
O servidor confere que você entrou, mas esquece de conferir se você pode fazer aquilo.
- Controle de acesso quebrado
- Controle só no cliente
- Navegação forçada
- Atribuição em massa
- +5
Desafios longos
Investigações demoradas, para quem já passou pelas outras.
Forense de discos e dispositivos
Imagens de disco e memórias de aparelhos inteiras, com o que foi apagado e o que foi escondido.
- Arquivos apagados e recuperação
- Por dentro do PNG
- Metadados
- Esteganografia
- +8
Vulnerabilidades famosas
As falhas que pararam a internet, cada uma fatiada no mecanismo, na exploração e no patch.
- Interpolação que busca sozinha
- Entrada que vira comando
- Função escondida numa variável de ambiente
- Metacaracteres do shell
- +6