CatSuite
Intruso e Descobridor: fuzzing controlado no CatSuite
Saiba quando variar uma request ou procurar caminhos. Prepare wordlists pequenas, estime combinações e revise os resultados sem perder a referência.
No CatSuite, o Intruso varia trechos de uma request conhecida; o Descobridor procura caminhos e parâmetros a partir de um destino definido. Os dois ajudam a explorar comportamento HTTP no Android, mas respondem a perguntas diferentes. Um bom teste começa com escopo pequeno, lista curta, ritmo baixo e uma resposta de referência.
Guia publicado em 6 de outubro de 2026. A capa é uma ilustração conceitual original, não uma captura do aplicativo nem evidência de teste.
Este guia explica como escolher o módulo, preparar entradas e separar um resultado interessante de ruído. Para conhecer o conjunto do aplicativo, leia a visão geral do CatSuite. Se ainda não tem uma request válida, comece pela captura HTTP e HTTPS e pelo Repetir.
Quando usar cada ferramenta
| Pergunta | Módulo | Entrada principal |
|---|---|---|
| Como a API reage a valores diferentes deste campo? | Intruso | Request válida com trecho selecionado |
| Quais caminhos desta aplicação respondem? | Descobridor | URL de laboratório e lista de caminhos |
| Como comparar dois casos antes de ampliar o teste? | Repetir | Duas variações controladas |
| Como encadear descobertas e análises? | Fluxos | Artefatos e etapas compatíveis aprovadas |
Fuzzing, neste contexto, é variar entradas de forma sistemática para observar respostas. A qualidade vem da escolha dos valores e da interpretação. A quantidade de chamadas, sozinha, não informa a cobertura de regras de negócio nem comprova uma vulnerabilidade.
Prepare uma sonda que realmente funcione
No cenário fictício Aurora, uma busca aceita categoria=livros. Antes de testar outras categorias, confirme que essa request funciona e que a response representa a API, e não uma tela de login ou um bloqueio intermediário.
GET /api/produtos?categoria=livros HTTP/1.1
Host: api.aurora.test
Accept: application/json
Authorization: Bearer TOKEN_DE_LABORATORIOO Intruso usa uma sonda como linha de base para comparar as variações. Diferenças de status, tamanho ou conteúdo ajudam a selecionar casos para revisão manual. Se a sonda já está inválida, o restante do teste tende a produzir uma coleção de erros pouco informativa.
Marque posições pelos controles do Intruso
Selecione o valor que deseja variar e use Marcar seleção, ou utilize Autodetectar e revise as posições encontradas. Os controles envolvem o trecho com delimitadores e apresentam as posições como P1, P2 e assim por diante. Não confunda essa marcação com o token literal usado na URL do Descobridor.
A documentação do Intruso descreve marcações, geradores e processadores. Para um primeiro teste, marque apenas livros e use uma lista de cinco valores conhecidos do laboratório:
livros
eletronicos
papelaria
categoria-inexistente-lab
LIVROSEssa lista permite estudar valores válidos, inexistência e sensibilidade a maiúsculas sem gerar uma execução extensa. Preserve codificação e tipo do campo. Um valor de query string, um número JSON e um nome de header têm regras de transporte diferentes.
Entenda o número de combinações antes de iniciar
Com mais de uma posição, o modo de distribuição muda o significado do teste. Uma comparação de pares específicos não é equivalente a experimentar todos os pares possíveis.
| Modo | Comportamento | Aplicação prática |
|---|---|---|
| Por marca | Varia uma posição por vez | Localizar qual campo influencia a resposta |
| Todas as marcas | Usa o mesmo item nas posições | Investigar valores repetidos em campos equivalentes |
| Alinhadas | Combina itens pelo índice | Testar pares previamente definidos |
| Combinações | Cruza as listas | Explorar uma matriz pequena e planejada |
Duas listas de cinco valores podem produzir 25 combinações no produto cartesiano. Acrescentar uma terceira lista de cinco leva a 125. Confira a estimativa exibida no aplicativo e inclua a sonda e outras verificações no orçamento de tráfego. Use uma planilha ou uma matriz pequena quando a relação entre os campos for importante.
Descobridor: caminhos e parâmetros com propósito
O Descobridor usa o marcador literal $CAT$ na URL. No exemplo abaixo, cada caminho da lista ocupa essa posição. O domínio é fictício e deve existir apenas no seu ambiente de teste.
https://api.aurora.test/$CAT$api/perfil
api/produtos
api/pedidos
health
caminho-inexistente-labComece por caminhos derivados do contrato, do JavaScript ou da navegação observada. Isso produz hipóteses mais claras do que uma lista genérica enorme. A referência do Descobridor explica posição do marcador, métodos, fontes de payloads e filtros.
Faça também uma request para um caminho inexistente. Algumas aplicações devolvem status 200 e a mesma página para qualquer URL, um comportamento conhecido como soft 404. Nesse caso, comparar apenas o status transforma dezenas de caminhos em falsos candidatos.
Controle taxa, atraso e condição de parada
Para o laboratório inicial, escolha um ritmo conservador, como uma request por segundo, e acompanhe a resposta antes de aumentar a lista. Esse valor é uma sugestão de sessão pequena, não uma configuração universal para qualquer alvo. Respeite o orçamento combinado com o responsável pelo ambiente.
Interrompa quando houver aumento persistente de erros, respostas 429, degradação perceptível ou saída do escopo. O Descobridor possui controles de ritmo e backoff; ainda assim, cabe ao operador verificar o comportamento real. Um teste pausado pode ter operações já enviadas, portanto avalie o estado antes de retomar métodos que alterem dados.
- Confirmar a sonda e a identidade da conta de laboratório.
- Conferir o total estimado de envios.
- Definir taxa, prazo e condição de parada.
- Excluir destinos que não fazem parte do escopo.
- Evitar métodos de alteração no reconhecimento inicial.
- Revisar resultados candidatos no Repetir antes de classificá-los.
Filtre sem apagar o contexto
Status, tamanho, tempo, termos e extrações ajudam a localizar anomalias. Use os filtros para priorizar revisão, preservando a linha de base. Um conteúdo dinâmico pode variar de tamanho por motivos legítimos; uma resposta lenta pode refletir rede móvel, fila do servidor ou repetição do handshake.
| Sinal observado | Interpretação prudente | Como aprofundar |
|---|---|---|
| 200 diferente da sonda | Conteúdo merece revisão | Ler Content-Type e campos relevantes |
| 403 em um caminho | Há uma resposta de acesso recusado | Verificar contrato e autenticação |
| 500 com valor específico | Falha funcional reproduzível em potencial | Repetir apenas o caso mínimo |
| Diferença de tamanho | Conteúdo ou erro mudou | Comparar semanticamente o corpo |
| Endpoint no JavaScript | Candidato descoberto | Verificar escopo antes de acessá-lo |
Um endpoint encontrado pode estar desativado, pertencer a outra versão ou exigir um fluxo que ainda não foi compreendido. Nunca transforme a descoberta em ampliação automática do alvo. O guia de fluxos e CatBridge aborda essa separação entre descoberta, autorização e execução.
Perguntas frequentes sobre variações HTTP
Preciso de uma wordlist grande?
Não. Para depurar validação ou uma regra de acesso, uma lista de casos escolhidos pode oferecer mais informação com menos tráfego. Amplie quando existir uma pergunta que a lista curta não consegue responder.
Um status 403 prova que o endpoint está protegido?
Ele mostra a resposta daquele caso. A análise depende do objeto, da conta, do método, do contexto e da política esperada. Não generalize um resultado para toda a aplicação.
Os módulos precisam do CatBridge?
Não. Intruso e Descobridor fazem parte do aplicativo. O CatBridge acrescenta capacidades externas, conforme os executores instalados e aprovados.
Guarde os casos relevantes e siga a análise
Envie o caso mínimo ao Repetir, registre a referência e exporte somente o necessário. Para automatizar uma interpretação que já foi validada, conheça as extensões JavaScript do CatSuite. O aplicativo está na Google Play, com documentação oficial para cada módulo.