1. Análise de Código-Fonte
Este desafio envolve a recuperação de informações ocultas no código HTML da página. Ao acessar o endereço, a funcionalidade de clique com o botão direito está desabilitada, impedindo a visualização tradicional do código-fonte.
Soluções alternativas para visualização:
- Atalho de desenvolvedor: F12
- Interceptação de tráfego com ferramentas como Burp Suite
- Prefixo especial no navegador:
view-source:seguido da URL
A flag está localizada nos comentários HTML ou no painel do inspetor de elementos.
2. Protocolo de Rastreamento
O arquivo robots.txt define regras para motores de busca, frequentemente revelando caminhos sensíveis do servidor. A estratégia envolve:
- Acesso direto a
/robots.txt - Análise das entradas
Disallow - Descoberta de arquivo oculto:
f1ag_1s_h3re.php
Acesso ao arquivo revelado retorna a flag completa.
3. Arquivos de Backup
Servidores frequentemente mantêm cópias de segurança de arquivos críticos. Extensões comuns de backup incluem:
.bak, .swp, .~, .old, .orig, .save, .copy
Para o arquivo index.php, testar variações como index.php.bak. Donwload bem-sucedido permite análise local do conteúdo preservado.
4. Manipulação de Cookies
Os cookies armazenam dados de sessão e instruções do servidor. Procedimento:
- Inspeção de cookies via ferramentas de desenvolvedor
- Identificação de referência a
cookie.php - Acesso à página indicada
- Verificação do cabeçalho de resposta HTTP para flag oculta
3. Remoção de Restrições Frontend
Elementos HTML podem conter atributos que impedem interação. Localizar o botão alvo no inspetor de elementos e remover o atributo disabled permite ativação normal do elemento.
6. Autenticação Fraca
Sistemas com credenciais previsíveis são vulneráveis a ataques de força bruta. Metodologia:
- Identificação de usuário através de mensagens de erro
- Configuração de ataque no intruder do Burp Suite
- Carregamento de lista de senhas comuns
- Aálise de respostas por comprimento diferente
Credencial válida revela a flag no corpo da resposta.
7. Tipagem Flexível em PHP
O código vulnerável apresenta comparações fracas:
// Requisitos para a flag
// Parâmetro 'a': avaliado como 0, mas verdadeiro em contexto booleano
// Parâmetro 'b': não numérico, porém maior que 1234
// Payload efetivo:
// ?a[]=0&b=12345a
// ou ?a=0abc&b=99999%00
O operador == em PHP realiza coerção de tipos, permitindo bypass das verificações.
8. Métodos HTTP
Desafio de envio de dados via diferentes verbos HTTP:
# Primeira etapa - GET
curl "http://alvo/?parametro1=valor"
# Segunda etapa - POST
curl -X POST -d "parametro2=valor" http://alvo/
Extensões de navegador como Hackbar simplificam essas operações.
9. Falsificação de Cabeçalhos
Verificação de origem da requisição pode ser contornada:
X-Forwarded-For: 123.123.123.123
Referer: https://www.google.com
Esses cabeçalhos são inseridos na requisição interceptada antes do envio ao servidor.
10. Web Shell
Presença de backdoor PHP com função de execução de comandos:
# Conexão via ferramenta de gerenciamento (AntSword, Behinder)
# ou execução direta via POST:
cmd=system('ls -la');
cmd=system('cat /diretorio/flag.txt');
A senha de conexão é explicitamente fornecida no enunciado.
11. Injeção de Comandos
Funcionalidade de ping sem sanitização permite execução arbitrária:
# Teste inicial
127.0.0.1; id
# Busca recursiva por arquivos de flag
127.0.0.1; find / -type f -name "*flag*" 2>/dev/null
# Exfiltração do conteúdo
127.0.0.1; cat /caminho/encontrado/flag.txt
Operadores de concatenação: ;, &&, ||, |
12. Ofuscação JavaScript
Análise de script cliente revela sequência de valores hexadecimais:
# Python para decodificação
valores = [0x35, 0x35, 0x2c, 0x35, 0x36] # sequência completa
decodificado = ''.join(chr(int(x, 16)) for x in valores.split(','))
print(decodificado)
O resultado forma a senha válida para o desafio.