Burp Suite Web Application Testing
Propósito
Executar testes abrangentes de segurança de aplicações web usando o conjunto de ferramentas integrado do Burp Suite, incluindo interceptação e modificação de tráfego HTTP, análise e repetição de requisições, varredura automatizada de vulnerabilidades e fluxos de trabalho de testes manuais. Esta habilidade permite a descoberta e exploração sistemática de vulnerabilidades de aplicações web por meio de metodologia de testes baseada em proxy.
Inputs / Pré-requisitos
Ferramentas Necessárias
- Burp Suite Community ou Professional Edition instalado
- Navegador integrado do Burp ou navegador externo configurado
- URL da aplicação web alvo
- Credenciais válidas para testes autenticados (se aplicável)
Configuração do Ambiente
- Burp Suite iniciado com projeto temporário ou nomeado
- Listener de proxy ativo em 127.0.0.1:8080 (padrão)
- Navegador configurado para usar proxy do Burp (ou use navegador do Burp)
- Certificado CA instalado para interceptação HTTPS
Comparação de Edições
| Recurso | Community | Professional |
|---|---|---|
| Proxy | ✓ | ✓ |
| Repeater | ✓ | ✓ |
| Intruder | Limitado | Completo |
| Scanner | ✗ | ✓ |
| Extensions | ✓ | ✓ |
Outputs / Entregas
Saídas Primárias
- Requisições/respostas HTTP interceptadas e modificadas
- Relatórios de varredura de vulnerabilidades com conselhos de remediação
- Documentação de histórico HTTP e mapa do site
- Provas de conceito de exploits para vulnerabilidades identificadas
Fluxo de Trabalho Principal
Fase 1: Interceptando Tráfego HTTP
Iniciar Navegador do Burp
Navegue para navegador integrado para integração perfeita com proxy:
- Abra Burp Suite e crie/abra projeto
- Vá para aba Proxy > Intercept
- Clique em Open Browser para iniciar navegador pré-configurado
- Posicione as janelas para visualizar Burp e navegador simultaneamente
Configurar Interceptação
Controle quais requisições são capturadas:
Proxy > Intercept > Toggle Intercept is on/off
When ON: Requisições pausam para revisão/modificação
When OFF: Requisições passam, registradas no histórico
Interceptar e Encaminhar Requisições
Processe tráfego interceptado:
- Defina o toggle de interceptação para Intercept on
- Navegue até a URL alvo no navegador
- Observe a requisição mantida na aba Proxy > Intercept
- Revise o conteúdo da requisição (headers, parâmetros, body)
- Clique em Forward para enviar requisição ao servidor
- Continue encaminhando requisições subsequentes até página carregar
Ver Histórico HTTP
Acesse log completo de tráfego:
- Vá para aba Proxy > HTTP history
- Clique em qualquer entrada para visualizar requisição/resposta completa
- Ordene clicando nos cabeçalhos de colunas (# para ordem cronológica)
- Use filtros para focar em tráfego relevante
Fase 2: Modificando Requisições
Interceptar e Modificar
Altere parâmetros de requisição antes de encaminhar:
- Ative interceptação: Intercept on
- Dispare requisição alvo no navegador
- Localize parâmetro a modificar na requisição interceptada
- Edite valor diretamente no editor de requisição
- Clique em Forward para enviar requisição modificada
Alvo Comum de Modificações
| Alvo | Exemplo | Propósito |
|---|---|---|
| Parâmetros de preço | price=1 |
Testar lógica de negócio |
| IDs de usuário | userId=admin |
Testar controle de acesso |
| Valores de quantidade | qty=-1 |
Testar validação de entrada |
| Campos ocultos | isAdmin=true |
Testar escalação de privilégio |
Exemplo: Manipulação de Preço
POST /cart HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded
productId=1&quantity=1&price=100
# Modificar para:
productId=1&quantity=1&price=1
Resultado: Item adicionado ao carrinho ao preço modificado.
Fase 3: Definindo Escopo de Alvo
Definir Escopo
Focalize testes em alvo específico:
- Vá para Target > Site map
- Clique com botão direito no host alvo no painel esquerdo
- Selecione Add to scope
- Quando solicitado, clique em Yes para excluir tráfego fora de escopo
Filtrar por Escopo
Remova ruído do histórico HTTP:
- Clique no filtro de exibição acima do histórico HTTP
- Selecione Show only in-scope items
- Histórico agora mostra apenas tráfego do site alvo
Benefícios do Escopo
- Reduz confusão de requisições de terceiros
- Previne testes acidentais de sites fora de escopo
- Melhora eficiência de varredura
- Cria relatórios mais limpos
Fase 4: Usando Burp Repeater
Enviar Requisição para Repeater
Prepare requisição para testes manuais:
- Identifique requisição interessante no histórico HTTP
- Clique com botão direito em requisição e selecione Send to Repeater
- Vá para aba Repeater para acessar requisição
Modificar e Reenviar
Teste diferentes entradas com eficiência:
1. Visualize requisição na aba Repeater
2. Modifique valores de parâmetros
3. Clique em Send para enviar requisição
4. Revise resposta no painel direito
5. Use setas de navegação para revisar histórico de requisições
Fluxo de Trabalho de Testes com Repeater
Requisição Original:
GET /product?productId=1 HTTP/1.1
Teste 1: productId=2 → Resposta de produto válido
Teste 2: productId=999 → Resposta Not Found
Teste 3: productId=' → Resposta de erro/exceção
Teste 4: productId=1 OR 1=1 → Teste de SQL injection
Analisar Respostas
Procure por indicadores de vulnerabilidades:
- Mensagens de erro revelando stack traces
- Informações de versão/framework divulgadas
- Diferentes comprimentos de resposta indicando falhas lógicas
- Diferenças de tempo sugerindo injeção cega
- Dados inesperados em respostas
Fase 5: Executando Varreduras Automatizadas
Iniciar Nova Varredura
Inicie varredura de vulnerabilidades (apenas Professional):
- Vá para aba Dashboard
- Clique em New scan
- Digite URL alvo em URLs to scan
- Configure opções de varredura
Opções de Configuração de Varredura
| Modo | Descrição | Duração |
|---|---|---|
| Lightweight | Visão geral de alto nível | ~15 minutos |
| Fast | Verificação rápida de vulnerabilidades | ~30 minutos |
| Balanced | Varredura abrangente padrão | ~1-2 horas |
| Deep | Testes minuciosos | Várias horas |
Monitorar Progresso da Varredura
Acompanhe atividade de varredura:
- Visualize status da tarefa em Dashboard
- Observe Target > Site map atualizar em tempo real
- Verifique aba Issues para vulnerabilidades descobertas
Revisar Problemas Identificados
Analise descobertas da varredura:
- Selecione tarefa de varredura em Dashboard
- Vá para aba Issues
- Clique em problema para visualizar:
- Advisory: Descrição e remediação
- Request: Requisição HTTP disparadora
- Response: Resposta do servidor mostrando vulnerabilidade
Fase 6: Ataques Intruder
Configurar Intruder
Configure ataque automatizado:
- Envie requisição para Intruder (clique direito > Send to Intruder)
- Vá para aba Intruder
- Defina posições de payload usando marcadores §
- Selecione tipo de ataque
Tipos de Ataque
| Tipo | Descrição | Caso de Uso |
|---|---|---|
| Sniper | Posição única, iterar payloads | Fuzzing de um parâmetro |
| Battering ram | Mesmo payload em todas posições | Testes de credenciais |
| Pitchfork | Iteração paralela de payloads | Pares usuário:senha |
| Cluster bomb | Todas combinações de payload | Força bruta completa |
Configurar Payloads
Positions Tab:
POST /login HTTP/1.1
...
username=§admin§&password=§password§
Payloads Tab:
Set 1: admin, user, test, guest
Set 2: password, 123456, admin, letmein
Analisar Resultados
Revise saída do ataque:
- Ordene por comprimento de resposta para encontrar anomalias
- Filtre por código de status para tentativas bem-sucedidas
- Use grep para buscar strings específicas
- Exporte resultados para documentação
Referência Rápida
Atalhos de Teclado
| Ação | Windows/Linux | macOS |
|---|---|---|
| Encaminhar requisição | Ctrl+F | Cmd+F |
| Descartar requisição | Ctrl+D | Cmd+D |
| Enviar para Repeater | Ctrl+R | Cmd+R |
| Enviar para Intruder | Ctrl+I | Cmd+I |
| Toggle de interceptação | Ctrl+T | Cmd+T |
Payloads Comuns de Teste
# SQL Injection
' OR '1'='1
' OR '1'='1'--
1 UNION SELECT NULL--
# XSS
<script>alert(1)</script>
"><img src=x
javascript:alert(1)
# Path Traversal
../../../etc/passwd
..\..\..\..\windows\win.ini
# Command Injection
; ls -la
| cat /etc/passwd
`whoami`
Dicas de Modificação de Requisição
- Clique direito para opções de menu de contexto
- Use decoder para codificar/decodificar
- Compare requisições usando ferramenta Comparer
- Salve requisições interessantes no projeto
Restrições e Salvaguardas
Limites Operacionais
- Teste apenas aplicações autorizadas
- Configure escopo para prevenir testes acidentais fora de escopo
- Limite taxa de varreduras para evitar negação de serviço
- Documente todos os achados e ações
Limitações Técnicas
- Community Edition não possui scanner automatizado
- Alguns sites podem bloquear tráfego de proxy
- HSTS/certificate pinning podem exigir configuração adicional
- Varreduras pesadas podem disparar blocos de WAF
Melhores Práticas
- Sempre defina escopo de alvo antes de testes extensivos
- Use navegador do Burp para interceptação confiável
- Salve projeto regularmente para preservar trabalho
- Revise resultados de varredura manualmente para falsos positivos
Exemplos
Exemplo 1: Testes de Lógica de Negócio
Cenário: Manipulação de preço em e-commerce
- Adicione item ao carrinho normalmente, intercepte requisição
- Identifique parâmetro
price=9999no corpo POST - Modifique para
price=1 - Encaminhe requisição
- Complete checkout ao preço manipulado
Achado: Servidor confia em valores de preço fornecidos pelo cliente.
Exemplo 2: Bypass de Autenticação
Cenário: Testando formulário de login
- Envie credenciais válidas, capture requisição em Repeater
- Envie para Repeater para testes
- Tente:
username=admin' OR '1'='1'-- - Observe resposta de login bem-sucedida
Achado: SQL injection na autenticação.
Exemplo 3: Divulgação de Informações
Cenário: Coleta de informações baseada em erros
- Navegue para página de produto, observe parâmetro
productId - Envie requisição para Repeater
- Mude
productId=1paraproductId=test - Observe erro detalhado revelando versão de framework
Achado: Apache Struts 2.5.12 divulgado em stack trace.
Troubleshooting
Navegador Não Conectando Através de Proxy
- Verifique se listener de proxy está ativo (Proxy > Options)
- Confira configurações de proxy do navegador apontam para 127.0.0.1:8080
- Garanta que nenhum firewall bloqueia conexões locais
- Use navegador integrado do Burp para configuração confiável
Interceptação HTTPS Falhando
- Instale certificado CA do Burp em navegador/sistema
- Navegue para http://burp para baixar certificado
- Adicione certificado a raízes confiáveis
- Reinicie navegador após instalação
Performance Lenta
- Limite escopo para reduzir processamento
- Desative extensões desnecessárias
- Aumente tamanho de heap Java em opções de inicialização
- Feche abas e recursos do Burp não utilizados
Requisições Não Sendo Interceptadas
- Verifique se "Intercept on" está ativado
- Verifique se regras de interceptação não filtram alvo
- Garanta que navegador está usando proxy do Burp
- Verifique se alvo não está usando protocolo não suportado