O Interceptador é o módulo de controle ao vivo do tráfego no CatSuite: ele pausa cada request e cada response em uma fila, permite revisar e editar método, URL, headers, cookies e corpo antes do encaminhamento e mantém todo o histórico organizado por domínio, com Site Map por host e endpoint, comparação lado a lado e exportação em HAR, JSON, TXT e cURL. Esta página explica cada conceito, cada opção e como usar e configurar o Interceptador passo a passo, sempre contra um alvo autorizado.
O que é o Interceptador e para que serve #
O Interceptador resolve um problema central da análise web: olhar e mexer no tráfego no momento em que ele acontece. Em vez de ler um registro depois do fato, você segura a mensagem no caminho, inspeciona o conteúdo e decide o que segue adiante — encaminhar como está, editar e encaminhar, ou descartar.
Quando a interceptação está ligada, cada mensagem vinda do Proxy de Rede ou do Navegador para em uma fila. Quando está desligada, o tráfego passa direto e fica apenas registrado no histórico, se o histórico estiver habilitado.
Casos de uso típicos:
- Parar um login ou uma chamada de API para ver exatamente quais headers e cookies o cliente envia.
- Trocar um parâmetro do corpo ou uma URL antes de a request chegar ao servidor.
- Alterar o status, os headers ou o corpo de uma response para testar como o app cliente reage.
- Montar o mapa de hosts e endpoints de um alvo conforme você navega.
- Comparar duas capturas lado a lado e exportar as evidências em HAR, JSON, TXT ou cURL.
O Interceptador é um ponto de inspeção local: ele opera sobre o proxy do próprio aparelho, sem servidores intermediários. As capturas e as preferências ficam no armazenamento privado do app.
Conceitos essenciais do Interceptador #
Antes de mexer nas opções, vale entender os termos que aparecem na tela. Cada conceito abaixo tem reflexo direto em um painel ou botão do módulo.
Interceptação de requests e responses #
Interceptar é segurar a mensagem antes de ela seguir. Por padrão, o Interceptador pausa as requests (o que o cliente envia). Com a opção Interceptar response ligada, ele também pausa a response (o que o servidor devolve) depois que a request é encaminhada, abrindo um segundo momento de edição. Assim você controla os dois sentidos do diálogo HTTP.
Fila de interceptação #
A fila de interceptação é a lista de mensagens pausadas, aguardando a sua decisão. Cada item mostra método, host e caminho. Enquanto a fila existe, o tráfego fica realmente parado — nada segue sem a sua ação. O cabeçalho da fila indica o estado (interceptação ligada ou desligada) e, durante o envio, exibe FINALIZANDO ENVIO. O layout da fila alterna entre CARTÕES (mais detalhe) e COMPACTO (mais itens na tela).
Escopo de hosts e pausa seletiva #
O escopo é uma lista de hosts que define onde a pausa age. Com Pausar só no escopo ligado e hosts definidos em Gestão de escopo, a fila segura apenas o tráfego desses hosts e deixa o resto passar. O match é por sufixo: exemplo.com cobre api.exemplo.com e demais subdomínios, e o campo aceita o formato *.host. Sem hosts no escopo, a pausa permanece global para não deixar tráfego escapar.
Histórico, limite e Captura Total #
O histórico guarda as mensagens que passaram pelo Interceptador e pelo proxy, por domínio, para consulta posterior. O limite do histórico mantém até um número máximo de requisições visíveis e descarta automaticamente as mais antigas. A Captura Total, quando disponível no aparelho, registra todo o tráfego do proxy local no histórico — não só o que você interceptou manualmente. Ela depende de suporte do dispositivo e pode não estar disponível em todos os aparelhos.
Site Map (árvore de site) por host e endpoint #
O Site Map reorganiza o histórico como uma árvore: cada host vira um nó que expande para os caminhos (endpoints) observados. Cada endpoint mostra os métodos e os status vistos e um contador de requisições. É a forma rápida de entender a superfície do alvo. Tocar no ícone de filtro de um host aplica o host (ou o host mais o caminho) ao filtro do histórico.
Comparação A/B de requisições #
A comparação abre duas capturas lado a lado — A e B — em uma tela cheia. Você alterna entre REQUEST e RESPONSE e as linhas diferentes entre os dois lados ficam destacadas, o que facilita ver o que mudou entre uma captura e outra.
Exportação em HAR, JSON, TXT e cURL #
A exportação leva o histórico filtrado para fora do app. São quatro formatos: TXT (texto organizado), cURL .txt (um arquivo de comandos cURL completos, com -X, -H e -d), JSON (dados estruturados para análise e automação) e .HAR (arquivo compatível com ferramentas de análise de tráfego HTTP). A mesma tela serve para baixar ou compartilhar.
Regras automáticas e extensões #
Quando há extensões processando o proxy, as regras de substituição aplicáveis rodam antes dos handlers e antes de a mensagem chegar à fila. Uma request alterada por regra automática recebe uma marca de REGRA AUTOMÁTICA na fila. A edição manual no Interceptador prevalece sobre o que já foi aplicado.
A tela do Interceptador: abas e painéis #
O Interceptador tem três abas no topo: INTERCEPTAR, HISTÓRICO e OPÇÕES. A cor de acento padrão é o amarelo (roxo no App Virtual).
Aba Interceptar #
É onde você opera a fila ao vivo. No topo fica o interruptor de interceptação (ligada/desligada) e o alternador de layout CARTÕES/COMPACTO. Abaixo, a FILA DE INTERCEPTAÇÃO lista as mensagens pausadas com MÉTODO, HOST e CAMINHO. Sem nada na fila, a área mostra AGUARDANDO NOVAS REQUISIÇÕES. Cada item leva ao EDITOR DA REQUISIÇÃO e, quando aplicável, à seção de response pausada.
Aba Histórico #
Mostra o HISTÓRICO DO INTERCEPTADOR. No topo há o campo de busca (Buscar por site, domínio, método, URL ou status...) e os botões de árvore de site (Site Map), só interessantes, Proxy de Rede (quando aplicável) e o menu de filtros. A lista traz cada captura; ao selecionar uma, o painel de detalhe mostra as abas REQUEST e RESPONSE e as INFORMAÇÕES GERAIS. Tocar e segurar uma captura abre o menu de cópia, compartilhamento e envio.
Aba Opções #
Reúne dois blocos de configuração: CONFIGURAÇÕES DO INTERCEPTAR (comportamento da fila, escopo, Captura Total e cores do HTTP) e CONFIGURAÇÕES DO HISTÓRICO (limite, condições de captura, conteúdos de response, escopo do histórico e o atalho DOWNLOAD E COMPARTILHAR).
O editor da requisição: Bruto, Headers, Corpo e Busca #
Ao abrir uma request na fila, o EDITOR DA REQUISIÇÃO apresenta quatro sub-abas:
- Bruto — a request inteira como texto (linha inicial com método e URL/caminho, headers e corpo). Editar aqui sincroniza com as abas estruturadas.
- Headers — a lista de CABECALHOS EDITÁVEIS em pares chave/valor. É aqui que você edita os cookies, pelo header
Cookie, além deAuthorization,User-Agente demais. - Corpo — o editor do corpo, que se adapta ao formato: CORPO // FORM URLENCODED, CORPO // JSON FORMATADO ou CORPO // TEXTO.
- Busca — localiza um trecho dentro da própria requisição.
Ao terminar, use APLICAR E ENVIAR para encaminhar com as edições. Se o texto bruto ficar inválido, o editor avisa (Corrija a requisição bruta para editar os headers.) e bloqueia as abas estruturadas até você corrigir.
Opções do Interceptador e como configurar #
Opções do Interceptar #
A tabela reúne o bloco CONFIGURAÇÕES DO INTERCEPTAR da aba Opções.
| Opção | Valores | Padrão | O que faz |
|---|---|---|---|
| Interceptação | Ligada, Desligada | Desligada | Liga a fila; cada nova mensagem para para revisão antes de seguir |
| Interceptar response | Ligado, Desligado | Desligado | Também pausa a response depois que a request é encaminhada |
| Redirecionar para o Navegador | Ligado, Desligado | Ligado | Abre o Navegador ao enviar a request pelo Interceptador |
| Pausar só no escopo | Ligado, Desligado | Desligado | Pausa apenas os hosts do escopo; sem hosts, a pausa é global |
| Gestão de escopo | lista de hosts | vazio | Define os hosts cobertos (match por sufixo, aceita *.host) |
| Captura Total | Ligada, Desligada | Desligada | Registra todo o tráfego do proxy local no histórico (depende do aparelho) |
| Cores do HTTP | Ligado, Desligado | Ligado | Destaca método, linha inicial, headers e valores nas áreas de request e response |
| Histórico do interceptador | Ligado, Desligado | Ligado | Liga ou desliga o registro das capturas no histórico |
Para ligar a interceptação, você pode usar o interruptor da aba Interceptar ou este bloco de opções. Com ela ligada, intercepte apenas quando quiser mesmo segurar o tráfego — a fila bloqueia tudo que entra até você agir item a item.
Para limitar a pausa a um alvo, ligue Pausar só no escopo e abra Gestão de escopo para adicionar os hosts. Lembre do match por sufixo: loja.exemplo cobre www.loja.exemplo e api.loja.exemplo. Sem hosts, mesmo com a opção ligada a pausa continua global, de propósito, para nada escapar.
Para acompanhar o resultado, deixe Redirecionar para o Navegador ligado: ao enviar a request, o app abre o Navegador para você ver a navegação principal. Desligue se preferir permanecer no Interceptador depois de confirmar a request.
Opções do Histórico #
A tabela reúne o bloco CONFIGURAÇÕES DO HISTÓRICO.
| Opção | Valores | Padrão | O que faz |
|---|---|---|---|
| Limite do histórico | 100, 300, 500, 1000, 2000, 5000 | 300 | Mantém até N requisições antes de descartar as mais antigas |
| Capturar só em condições | Todas, Wi-Fi, Dados, Carga | Todas | Restringe a captura por tipo de rede ou estado de bateria |
| Ver conteúdos de response | Ligado, Desligado | Desligado | Exibe o corpo completo de imagens, scripts e CSS (usa mais memória) |
| Gravar histórico só no escopo | Ligado, Desligado | Desligado | Grava apenas requisições para hosts do escopo |
| Download e compartilhar | — | — | Abre a tela de exportação com filtros por método, status, domínio, tipo, dia e horário |
Para economizar memória em aparelhos modestos, escolha o limite 100 (opção mais leve, focada nas requisições mais novas). O padrão 300 equilibra desempenho e retenção; 1000 a 5000 guardam sessões longas ao custo de mais memória.
As condições de captura poupam dados e bateria: Wi-Fi só captura em rede sem fio, Dados só em dados móveis e Carga só com o aparelho carregando e bateria acima de 50%. Todas não impõe restrição.
Botões e ações #
Na aba Interceptar e no editor #
| Botão / Ação | Onde | O que faz |
|---|---|---|
| Interruptor de interceptação | Topo da aba | Liga ou desliga a fila |
| CARTÕES / COMPACTO | Topo da fila | Alterna o layout da fila |
| EDITAR | Item da fila | Abre o editor da requisição |
| ENVIAR | Fila / editor | Encaminha a mensagem sem alterações |
| DESCARTAR | Fila / editor | Bloqueia e descarta a mensagem |
| APLICAR E ENVIAR | Editor | Aplica as edições e encaminha |
| Bruto / Headers / Corpo / Busca | Editor da requisição | Alterna as sub-abas do editor |
Na response pausada #
| Botão / Ação | O que faz |
|---|---|
| EDITAR E ENVIAR | Abre o editor da response |
| STATUS / HEADERS / CORPO | Sub-abas do editor da response |
| AÇÕES RÁPIDAS → INJETAR JS | Abre o campo para injetar JavaScript na response |
| AÇÕES RÁPIDAS → TROCAR JSON/CORPO | Substitui o corpo/JSON da response |
| INJETAR E ENVIAR | Aplica a injeção de JS e encaminha |
| FORMATAR JSON | Reformata o corpo JSON para leitura |
| ENVIAR / DESCARTAR | Encaminha ou descarta a response |
Na aba Histórico #
| Botão / Ação | O que faz |
|---|---|
| Campo de busca | Filtra por site, domínio, método, URL ou status |
| Árvore de site | Abre ou fecha o Site Map |
| Só interessantes | Mostra apenas as capturas marcadas como interessantes |
| Proxy de Rede | Mostra apenas o tráfego do Proxy de Rede |
| Menu de filtros | Abre OPÇÕES DO HISTÓRICO |
| Toque longo na captura | Abre o menu de cópia, compartilhamento e envio |
O menu OPÇÕES DO HISTÓRICO traz BUSCA AVANÇADA (Buscar por regex, Distinguir maiúsculas e minúsculas, Buscar no corpo, Limpar filtros, Limpar histórico) e os filtros MÉTODO (GET, POST, PUT, DELETE), STATUS, DOMÍNIO (Selecionar Domínios) e TIPO (HTML, JSON, Imagem, JS, CSS).
O menu de toque longo em uma captura oferece: Copiar (URL, Headers da requisição, Body da requisição, Requisição completa, Headers da resposta, Body da resposta, Resposta completa, Requisição e resposta, cURL, fetch (JavaScript), Python requests, HTTPie); Compartilhar; Comparar com outra; Marcar como interessante; Explique aqui (explicação por IA); e envio para Repetir, Intruso, Analisador SSL/TLS, Decodificar e bloco de notas.
Na exportação (Download e compartilhar) #
| Botão / Ação | O que faz |
|---|---|
| FORMATO DE EXPORTAÇÃO | Escolhe TXT, cURL .txt, JSON ou .HAR |
| BAIXAR | Salva o arquivo com os filtros atuais |
| COMPARTILHAR | Envia o arquivo pelo compartilhamento do sistema |
| LIMPAR FILTROS | Remove método, status, domínio, tipo, dia e horário selecionados |
Na comparação A/B #
| Botão / Ação | O que faz |
|---|---|
| REQUEST / RESPONSE | Escolhe qual parte comparar entre A e B |
| A → REPETIR / B → REPETIR | Envia a captura A ou B para o Repetir |
| A → INTERCEPTAR / B → INTERCEPTAR | Carrega a captura A ou B na fila para edição |
Passo a passo #
1. Ligar a interceptação e segurar a primeira request #
- Capture tráfego com o Proxy de Rede ou navegue pelo Navegador.
- Na aba INTERCEPTAR, acione o interruptor de interceptação.
- Gere uma ação no alvo (um clique, um envio de formulário). A mensagem aparece na FILA DE INTERCEPTAÇÃO.
- Toque no item para abrir o EDITOR DA REQUISIÇÃO ou decida direto: ENVIAR ou DESCARTAR.
2. Editar método, URL, headers, cookies e corpo #
- Com a request aberta no editor, vá à aba Bruto para ajustar a linha inicial (método e caminho) ou colar uma request completa.
- Vá a Headers para alterar pares chave/valor. Edite o header
Cookiepara trocar cookies eAuthorizationpara o token. - Vá a Corpo para editar o corpo no formato detectado (form urlencoded, JSON ou texto).
- Confira tudo e toque em APLICAR E ENVIAR.
3. Interceptar e editar a response #
- Na aba OPÇÕES, ligue Interceptar response.
- Encaminhe uma request normalmente. Quando a resposta chegar, a seção RESPONSE PAUSADA abre.
- Ajuste STATUS, HEADERS ou CORPO; use FORMATAR JSON para ler melhor; se precisar, INJETAR JS nas AÇÕES RÁPIDAS.
- Toque em EDITAR E ENVIAR (ou INJETAR E ENVIAR) para devolver a response ao cliente.
4. Explorar o Site Map por host e endpoint #
- Na aba HISTÓRICO, toque no ícone de árvore de site.
- Expanda um host para ver seus caminhos, com métodos, status e contagem.
- Toque no ícone de filtro de um host (ou em um caminho) para aplicar aquele recorte ao histórico e fechar o Site Map.
5. Filtrar o histórico e comparar duas capturas #
- Na aba HISTÓRICO, use o campo de busca ou abra o menu de filtros e escolha método, status, domínio e tipo.
- Para texto preciso, ligue Buscar por regex e, se quiser, Buscar no corpo.
- Em uma captura, use o toque longo e Comparar com outra; em seguida toque em outra captura.
- Na tela de comparação, alterne REQUEST/RESPONSE e observe as linhas diferentes destacadas.
6. Exportar em HAR, JSON, TXT ou cURL #
- Na aba OPÇÕES, abra DOWNLOAD E COMPARTILHAR.
- Ajuste os filtros (método, status, domínio, tipo, dia e horário) e veja os contadores TOTAL, SELECIONADO e FILTROS.
- Toque em FORMATO DE EXPORTAÇÃO e escolha .HAR, JSON, TXT ou cURL .txt.
- Toque em BAIXAR ou COMPARTILHAR.
7. Enviar para o Repetir e para o Intruso #
- No histórico (ou no editor), use o toque longo em uma captura.
- Escolha Enviar para o Repetir para replay manual e preciso, ou Enviar para o Intruso para automação com wordlists.
- Aprofunde a análise no módulo de destino.
Exemplos #
Request original pausada na fila, antes de qualquer edição:
POST /api/login HTTP/1.1
Host: alvo.exemplo
Content-Type: application/json
Cookie: sessao=abc123
{"usuario":"ana","senha":"123456"}A mesma request depois de editar o cookie e o corpo na aba Headers/Corpo:
POST /api/login HTTP/1.1
Host: alvo.exemplo
Content-Type: application/json
Cookie: sessao=novo_valor
{"usuario":"ana","senha":"outra-senha"}Comando gerado por Copiar cURL de uma captura do histórico:
curl -i -X POST "https://alvo.exemplo/api/login" \
-H "Content-Type: application/json" \
-H "Cookie: sessao=abc123" \
-d '{"usuario":"ana","senha":"123456"}'Trecho de um arquivo .HAR exportado, no formato aceito por ferramentas de análise HTTP:
{
"log": {
"version": "1.2",
"creator": { "name": "CatSuite", "version": "1.3" },
"entries": [
{
"request": {
"method": "POST",
"url": "https://alvo.exemplo/api/login"
},
"response": {
"status": 200
}
}
]
}
}Problemas comuns e perguntas frequentes #
Liguei a interceptação e o app travou todo o tráfego. É o comportamento esperado: a fila segura tudo até você agir. Resolva os itens da fila com ENVIAR ou DESCARTAR, ou desligue a interceptação.
A fila não segura só o alvo que eu quero. Ligue Pausar só no escopo e adicione os hosts em Gestão de escopo. Sem hosts, a pausa é global de propósito.
Liguei Interceptar response e não aparece nada. A response só pausa depois que a request correspondente é encaminhada. Encaminhe a request e aguarde a resposta.
O histórico não registra nada. Verifique se Histórico do interceptador está ligado e se o módulo História e notas está ativo nas configurações. Confira também as condições de captura (Wi-Fi, Dados, Carga).
A busca do histórico não acha o que espero. Se Buscar por regex estiver ligado e a expressão for inválida, o painel avisa. Corrija a regex ou desligue o modo regex. Ative Buscar no corpo para procurar dentro dos conteúdos.
A exportação saiu vazia. Algum filtro está restritivo demais. Toque em LIMPAR FILTROS e confira os contadores TOTAL e SELECIONADO antes de baixar.
A Captura Total não liga. Ela depende de suporte do aparelho. Quando indisponível, o app avisa e a interceptação continua funcionando normalmente, só sem a captura ampla.
Boas práticas e segurança #
- Mantenha a interceptação desligada quando só quiser observar; ligue apenas para segurar o tráfego de propósito.
- Use o escopo para não parar tráfego de outros apps e serviços do aparelho.
- Prefira editar em Headers e Corpo a reescrever a request Bruta inteira, para não quebrar a estrutura.
- Compare duas capturas antes de concluir que uma edição teve efeito.
- Exporte em .HAR ou JSON para guardar evidências; use cURL para reproduzir a request fora do app.