Ir para o conteúdo
CatSuite

Idioma

Escolha se o site segue o navegador ou se deve forçar português do Brasil ou inglês.

Baixar grátis

Módulos

Interceptador

Interceptador do CatSuite: como usar e configurar a fila, editar requests e responses, Site Map, histórico com filtros e exportação HAR, JSON, TXT e cURL.

17 min de leitura

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 de Authorization, User-Agent e 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çãoValoresPadrãoO que faz
InterceptaçãoLigada, DesligadaDesligadaLiga a fila; cada nova mensagem para para revisão antes de seguir
Interceptar responseLigado, DesligadoDesligadoTambém pausa a response depois que a request é encaminhada
Redirecionar para o NavegadorLigado, DesligadoLigadoAbre o Navegador ao enviar a request pelo Interceptador
Pausar só no escopoLigado, DesligadoDesligadoPausa apenas os hosts do escopo; sem hosts, a pausa é global
Gestão de escopolista de hostsvazioDefine os hosts cobertos (match por sufixo, aceita *.host)
Captura TotalLigada, DesligadaDesligadaRegistra todo o tráfego do proxy local no histórico (depende do aparelho)
Cores do HTTPLigado, DesligadoLigadoDestaca método, linha inicial, headers e valores nas áreas de request e response
Histórico do interceptadorLigado, DesligadoLigadoLiga 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çãoValoresPadrãoO que faz
Limite do histórico100, 300, 500, 1000, 2000, 5000300Mantém até N requisições antes de descartar as mais antigas
Capturar só em condiçõesTodas, Wi-Fi, Dados, CargaTodasRestringe a captura por tipo de rede ou estado de bateria
Ver conteúdos de responseLigado, DesligadoDesligadoExibe o corpo completo de imagens, scripts e CSS (usa mais memória)
Gravar histórico só no escopoLigado, DesligadoDesligadoGrava 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çãoOndeO que faz
Interruptor de interceptaçãoTopo da abaLiga ou desliga a fila
CARTÕES / COMPACTOTopo da filaAlterna o layout da fila
EDITARItem da filaAbre o editor da requisição
ENVIARFila / editorEncaminha a mensagem sem alterações
DESCARTARFila / editorBloqueia e descarta a mensagem
APLICAR E ENVIAREditorAplica as edições e encaminha
Bruto / Headers / Corpo / BuscaEditor da requisiçãoAlterna as sub-abas do editor

Na response pausada #

Botão / AçãoO que faz
EDITAR E ENVIARAbre o editor da response
STATUS / HEADERS / CORPOSub-abas do editor da response
AÇÕES RÁPIDAS → INJETAR JSAbre o campo para injetar JavaScript na response
AÇÕES RÁPIDAS → TROCAR JSON/CORPOSubstitui o corpo/JSON da response
INJETAR E ENVIARAplica a injeção de JS e encaminha
FORMATAR JSONReformata o corpo JSON para leitura
ENVIAR / DESCARTAREncaminha ou descarta a response

Na aba Histórico #

Botão / AçãoO que faz
Campo de buscaFiltra por site, domínio, método, URL ou status
Árvore de siteAbre ou fecha o Site Map
Só interessantesMostra apenas as capturas marcadas como interessantes
Proxy de RedeMostra apenas o tráfego do Proxy de Rede
Menu de filtrosAbre OPÇÕES DO HISTÓRICO
Toque longo na capturaAbre 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çãoO que faz
FORMATO DE EXPORTAÇÃOEscolhe TXT, cURL .txt, JSON ou .HAR
BAIXARSalva o arquivo com os filtros atuais
COMPARTILHAREnvia o arquivo pelo compartilhamento do sistema
LIMPAR FILTROSRemove método, status, domínio, tipo, dia e horário selecionados

Na comparação A/B #

Botão / AçãoO que faz
REQUEST / RESPONSEEscolhe qual parte comparar entre A e B
A → REPETIR / B → REPETIREnvia a captura A ou B para o Repetir
A → INTERCEPTAR / B → INTERCEPTARCarrega a captura A ou B na fila para edição

Passo a passo #

1. Ligar a interceptação e segurar a primeira request #

  1. Capture tráfego com o Proxy de Rede ou navegue pelo Navegador.
  2. Na aba INTERCEPTAR, acione o interruptor de interceptação.
  3. Gere uma ação no alvo (um clique, um envio de formulário). A mensagem aparece na FILA DE INTERCEPTAÇÃO.
  4. 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 #

  1. Com a request aberta no editor, vá à aba Bruto para ajustar a linha inicial (método e caminho) ou colar uma request completa.
  2. Vá a Headers para alterar pares chave/valor. Edite o header Cookie para trocar cookies e Authorization para o token.
  3. Vá a Corpo para editar o corpo no formato detectado (form urlencoded, JSON ou texto).
  4. Confira tudo e toque em APLICAR E ENVIAR.

3. Interceptar e editar a response #

  1. Na aba OPÇÕES, ligue Interceptar response.
  2. Encaminhe uma request normalmente. Quando a resposta chegar, a seção RESPONSE PAUSADA abre.
  3. Ajuste STATUS, HEADERS ou CORPO; use FORMATAR JSON para ler melhor; se precisar, INJETAR JS nas AÇÕES RÁPIDAS.
  4. Toque em EDITAR E ENVIAR (ou INJETAR E ENVIAR) para devolver a response ao cliente.

4. Explorar o Site Map por host e endpoint #

  1. Na aba HISTÓRICO, toque no ícone de árvore de site.
  2. Expanda um host para ver seus caminhos, com métodos, status e contagem.
  3. 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 #

  1. Na aba HISTÓRICO, use o campo de busca ou abra o menu de filtros e escolha método, status, domínio e tipo.
  2. Para texto preciso, ligue Buscar por regex e, se quiser, Buscar no corpo.
  3. Em uma captura, use o toque longo e Comparar com outra; em seguida toque em outra captura.
  4. Na tela de comparação, alterne REQUEST/RESPONSE e observe as linhas diferentes destacadas.

6. Exportar em HAR, JSON, TXT ou cURL #

  1. Na aba OPÇÕES, abra DOWNLOAD E COMPARTILHAR.
  2. Ajuste os filtros (método, status, domínio, tipo, dia e horário) e veja os contadores TOTAL, SELECIONADO e FILTROS.
  3. Toque em FORMATO DE EXPORTAÇÃO e escolha .HAR, JSON, TXT ou cURL .txt.
  4. Toque em BAIXAR ou COMPARTILHAR.

7. Enviar para o Repetir e para o Intruso #

  1. No histórico (ou no editor), use o toque longo em uma captura.
  2. Escolha Enviar para o Repetir para replay manual e preciso, ou Enviar para o Intruso para automação com wordlists.
  3. Aprofunde a análise no módulo de destino.

Exemplos #

Request original pausada na fila, antes de qualquer edição:

Request interceptadaHTTP
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:

Request editadaHTTP
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 equivalenteShell
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:

Exportação .HAR (trecho)JSON
{
  "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.

Continue #