Cyber Security Academy · Aula

Desafios de web e criptografia

Resolva desafios comuns de web e criptografia.

Aula 2 de 413 etapas

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  /admin

Injeçã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 -p

Cifras 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 n for pequeno o suficiente, fatore-o diretamente para recuperar a chave privada.
  • Expoente minúsculo, sem preenchimento — com e=3 e 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.txt

Um 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.

Grátis para começar

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

  1. Categorias e mentalidade de CTF
  2. Desafios de web e criptografia
  3. Fundamentos de engenharia reversa e exploração de binários
  4. Ferramentas e relatos técnicos
← Voltar para Cyber Security Academy