Exercícios de Pentest Web para Iniciantes - Cyberpeace

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:

  1. Acesso direto a /robots.txt
  2. Análise das entradas Disallow
  3. 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:

  1. Inspeção de cookies via ferramentas de desenvolvedor
  2. Identificação de referência a cookie.php
  3. Acesso à página indicada
  4. 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:

  1. Identificação de usuário através de mensagens de erro
  2. Configuração de ataque no intruder do Burp Suite
  3. Carregamento de lista de senhas comuns
  4. 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.

Tags: Web-Security CTF pentesting php-security command-injection

Publicado em 9-2 14:01