técnica
etapa: discover
3 min de leitura
Testes de segurança de web e API
A maioria dos achados web graves vem de uma lista curta de perguntas: quem pode ver o quê, quem pode alterar o quê e o que acontece com uma entrada diferente da que o desenvolvedor esperava. Um proxy e duas contas respondem à maioria delas.
Burp SuiteOWASP ZAPffuf (authorized content discovery)PostmancurlNuclei (authorized targets)
Preparação
- Passe o navegador por um proxy de interceptação (Burp, ZAP) para ver, reenviar e modificar cada requisição.
- Crie pelo menos duas contas de teste no mesmo nível de privilégio e uma em um nível superior, se o escopo permitir. Bugs de autorização são encontrados comparando contas.
- Mapeie a aplicação: páginas, rotas da API, parâmetros, papéis, uploads de arquivos, integrações. O esquema da API (OpenAPI) é um presente quando existe.
- Anote quais requisições são autenticadas e como: cookie, bearer token, chave de API.
Um checklist de testes
Percorra as categorias do e do Web Security Testing Guide. O domínio deste site sobre o OWASP Top 10 mostra a correção de cada uma; aqui está como procurá-las.
- Controle de acesso: reenvie as requisições da conta A com o token da conta B; altere ids; chame rotas de admin como usuário comum; teste métodos que a interface nunca usa.
- Autenticação e sessão: no login e na redefinição, expiração e rotação de sessão, flags de cookie, validação de token.
- Injeção: envie caracteres e tipos inesperados a cada parâmetro, cabeçalhos e campos JSON, e observe erros ou mudanças de comportamento.
- Lógica de negócio: pule etapas, repita etapas, altere quantidades e preços, dispare duas requisições ao mesmo tempo (race condition).
- Configuração incorreta: erros detalhados, endpoints de debug, listagem de diretórios, permissivo, cabeçalhos ausentes.
- Tratamento de arquivos: verificações de tipo e tamanho, tratamento de caminhos, onde os uploads são armazenados e servidos.
Exemplo: uma verificação de autorização com duas contas
Automatize a comparação repetitiva e mantenha o teste somente leitura. Este script, para um alvo autorizado, verifica se a conta B consegue ler objetos criados pela conta A.
import requests
BASE = "https://api.example.com/v2"
A = {"Authorization": "Bearer <token do tester-a>"}
B = {"Authorization": "Bearer <token do tester-b>"}
# objetos que a conta A possui (listados com o token da própria A)
ids = [o["id"] for o in requests.get(f"{BASE}/invoices", headers=A, timeout=10).json()]
for oid in ids:
r = requests.get(f"{BASE}/invoices/{oid}", headers=B, timeout=10)
verdict = "VULNERABLE" if r.status_code == 200 else "ok"
print(f"{oid}: B -> {r.status_code} {verdict}")ffuf -u https://app.example.com/FUZZ -w common-paths.txt -rate 10 -mc 200,204,301,302,401,403 -o ffuf.jsonTeste APIs de forma deliberada
- Autorização em nível de objeto () e em nível de função são os achados mais comuns em APIs.
- : envie campos extras (role, isAdmin, price) que o cliente nunca envia.
- Exposição excessiva de dados: a API devolve objetos inteiros e a interface esconde campos; leia a resposta bruta.
- Limites de taxa e de recursos em operações caras.
- Deriva de versões: versões antigas da API e rotas não documentadas que não têm os controles das novas.
- Fique dentro das : teste com dados de teste, evite chamadas destrutivas e mantenha a taxa de requisições baixa.
conexões no mapa
- Reconhecimento e superfície de ataquealimentaTestes de segurança de web e API
- Testes de segurança de web e APIpode levar aCaminhos de ataque e escalação de privilégios
atualizado em 14/10/2026 · fontes para aprofundar · reportar erro
em outros domínios
- A01 Broken Access Controlowaspcomo encontrar o que o outro ensina a corrigir
- A05 Injectionowaspcomo testar o que o outro ensina a corrigir
Estude antes
Desbloqueia
teste o que entendeu
Carregando perguntas…