Desafios de web e criptografia
Resolva desafios comuns de web e criptografia.
Desafios de web e criptografia é uma aula grátis de Cyber Security Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cyber Security Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cyber Security Academy inclui 4 aulas no total.
Duas bases: aplicações e criptografia
Aplicações e criptografia são os dois pontos de entrada mais comuns para CTF.
- Desafios de aplicações fornecem uma aplicação web em execução e pedem que você encontre uma falha na forma como ela lida com entrada, autenticação ou confiança.
- Desafios de criptografia fornecem um texto cifrado, um esquema e, às vezes, código-fonte, e pedem que você recupere o texto claro ou uma chave explorando uma falha na forma como a criptografia foi utilizada.
Ambos recompensam a observação metódica. Esta lição aborda os problemas recorrentes de cada área.
Primeiro movimento contra um alvo de aplicações
Antes de explorar qualquer coisa, mapeie a aplicação. Visualize o código-fonte, inspecione as respostas e procure conteúdo oculto.
# Inspect raw response headers and body
curl -i http://target/
# Look for hidden paths the UI does not link to
gobuster dir -u http://target/ -w wordlist.txt
# Common files worth checking by hand
# /robots.txt /.git/ /backup.zip /adminInjeção de SQL
A injeção de SQL ocorre quando a entrada do usuário é concatenada a uma consulta de banco de dados sem separação entre código e dados.
Um login que constrói uma consulta como SELECT * FROM users WHERE name='INPUT' pode ser subvertido por uma entrada que fecha a cadeia de caracteres e altera a lógica:
# A classic auth-bypass payload supplied as the username
' OR '1'='1' --
# UNION-based extraction once the column count is known
' UNION SELECT username, password FROM users -- A correção real para a injeção
Os CTFs ensinam você a explorar injeções para que saiba se defender delas. A defesa correta são consultas parametrizadas (instruções preparadas), que mantêm os dados do usuário completamente fora da estrutura da consulta.
# Vulnerable: input becomes part of the SQL text
query = "SELECT * FROM users WHERE name='" + name + "'"
# Safe: input is bound as a parameter, never parsed as SQL
cursor.execute("SELECT * FROM users WHERE name = ?", (name,))Cross-Site Scripting (XSS)
O XSS ocorre quando uma aplicação reflete ou armazena uma entrada controlada pelo atacante e um navegador execute essa entrada como script. Em CTF, um desafio de XSS muitas vezes envolve um robô que visita sua carga útil enquanto mantém a bandeira em um cookie.
- Refletido — a carga útil na solicitação é devolvida diretamente.
- Armazenado — a carga útil é salva e executada para visitantes posteriores.
- Baseado em DOM — o JavaScript do lado do cliente grava a entrada na página de forma insegura.
A defesa consiste em codificação de saída sensível ao contexto, além de uma Política de Segurança de Conteúdo. Uma entrada de teste como <script>alert(1)</script> confirma se a entrada é escapada.
SSRF e travessia de diretórios
Mais dois elementos fundamentais das aplicações:
- Falsificação de Solicitação do Lado do Servidor (SSRF) — você induz o servidor a fazer solicitações em seu nome, muitas vezes para endereços exclusivos da rede interna, como
http://127.0.0.1, ou para um ponto de acesso de metadados da nuvem, a fim de alcançar a bandeira. - Travessia de diretórios — você sai do diretório previsto usando sequências como
../para ler arquivos fora da raiz da aplicação web, por exemplo../../../../etc/passwd.
Ambos decorrem de confiar na entrada do usuário para escolher um recurso. As defesas são listas de permissão rigorosas e a canonização seguida da validação dos caminhos antes do uso.
Codificação não é criptografia
A armadilha criptográfica mais comum para iniciantes é confundir codificação com criptografia. A codificação pode ser revertida por qualquer pessoa sem uma chave, portanto não oferece nenhuma confidencialidade.
Aprenda a reconhecer os formatos de imediato:
- Base64 — letras, algarismos,
+ /e, muitas vezes, preenchimento com=. - Hexadecimal — apenas
0-9 a-f. - ROT13 / César — estrutura legível e letras deslocadas.
# Decode base64
echo 'ZmxhZ3toZWxsb30=' | base64 -d
# Decode hex
echo '666c6167' | xxd -r -pCifras clássicas e XOR
Muitos desafios de criptografia usam cifras históricas fracas ou cifras modernas mal implementadas:
- César / Vigenère — cifras de deslocamento quebradas por análise de frequência ou pela tentativa de todos os 25 deslocamentos.
- XOR de um único byte — a mensagem inteira é submetida a XOR com um byte; use força bruta com todas as 256 chaves e escolha o resultado legível.
- XOR com chave repetida — pode ser quebrado encontrando o tamanho da chave e, em seguida, resolvendo cada byte da chave como um XOR de um único byte.
A lição é: uma cifra personalizada ou clássica não oferece segurança real contra um analista.
Armadilhas do RSA
O RSA só é seguro quando seus parâmetros são escolhidos corretamente. Os desafios de criptografia de CTF adoram fornecer uma instância vulnerável:
- Módulo pequeno — se
nfor pequeno o suficiente, fatore-o diretamente para recuperar a chave privada. - Expoente minúsculo, sem preenchimento — com
e=3e uma mensagem curta, o texto cifrado pode ser um cubo perfeito, recuperável por meio de uma raiz cúbica inteira. - Fatores compartilhados — se duas chaves públicas compartilharem um primo, o máximo divisor comum dos módulos o revelará instantaneamente.
A defesa no mundo real é usar uma biblioteca confiável com chaves grandes e preenchimento adequado (OAEP), nunca implementar sua própria criptografia.
Quebra de resumos criptográficos
Quando um desafio fornece um resumo criptográfico de uma senha, o objetivo é recuperar a entrada original. Não é possível reverter um resumo criptográfico, mas é possível tentar entradas e compará-las.
# Identify the hash type first
hashid 5f4dcc3b5aa765d61d8327deb882cf99
# Dictionary attack with hashcat (mode 0 = raw MD5)
hashcat -m 0 hash.txt rockyou.txt
# John the Ripper alternative
john --wordlist=rockyou.txt hash.txtUm fluxo de trabalho reproduzível
Una tudo em um ciclo consistente para ambas as categorias:
- Observe — leia o enunciado, visualize o código-fonte e identifique a codificação ou o esquema.
- Formule hipóteses — nomeie a família provável de vulnerabilidades.
- Teste em pequena escala — envie uma carga útil de sondagem e observe a resposta exata.
- Explore — transforme a sondagem funcional em uma carga útil completa que produza a bandeira.
- Documente — registre a carga útil e o raciocínio enquanto ainda estiverem recentes.
Esse ciclo evita que você se perca em becos sem saída e produz um relato da solução quase sem esforço adicional.
Verificação rápida
Teste sua compreensão dos fundamentos da internet e da criptografia.
Recapitulação
Você estudou os desafios recorrentes de aplicações web e criptografia:
- Aplicações web: faça o mapeamento primeiro e depois procure por injeção de SQL, XSS, SSRF e travessia de caminhos — todos baseados na confiança insegura na entrada do usuário e corrigidos pela separação entre código e dados.
- Criptografia: diferencie codificação de criptografia, quebre cifras clássicas e XOR, explore erros nos parâmetros de RSA e quebre resumos criptográficos com listas de palavras.
- Um único ciclo de observar, formular hipóteses, testar, explorar e documentar funciona para ambos.
Em seguida, você passará à engenharia reversa e à exploração binária.
Aprenda Cyber Security Academy com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 76
- Aulas
- 303
Perguntas Frequentes
A aula “Desafios de web e criptografia” é grátis?
Sim — o texto completo de “Desafios de web e criptografia” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cyber Security Academy, atualize para CoddyKit PRO. O curso de Cyber Security Academy inclui 4 aulas no total.
O que vou aprender em “Desafios de web e criptografia”?
Resolva desafios comuns de web e criptografia. Você pratica Cyber Security Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Cyber Security Academy?
Nenhuma experiência prévia é necessária. Cyber Security Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Desafios de web e criptografia”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Cyber Security Academy?
Sim. Cada aula de Cyber Security Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Categorias e mentalidade de CTF
- Desafios de web e criptografia
- Fundamentos de engenharia reversa e exploração de binários
- Ferramentas e relatos técnicos