O Repetir é o módulo de tráfego manual do CatSuite. Ele reúne um editor HTTP com realce de sintaxe, autocompletar de headers, reenvio ilimitado da mesma request, um modo de comparação de respostas lado a lado e o controle de SSL/TLS por envio. É a bancada ideal para alterar um campo por vez, disparar de novo e entender o efeito exato de cada ajuste no comportamento do alvo. Esta página explica o que cada recurso faz, como configurar o módulo e como usar o Repetir em fluxos reais de teste autorizado.
O que é o módulo Repetir e para que serve #
O Repetir recebe uma request bruta — vinda do Interceptador, do Navegador, da História, do Descobridor ou de um resultado do Intruso — e deixa você editá-la livremente no formato cru (linha inicial, headers e corpo). A cada toque em ENVIAR, o módulo dispara a request e guarda a resposta completa, com status, tempo, tamanho e tipo de conteúdo. Você pode reenviar quantas vezes quiser, voltar e avançar pelo histórico de edições e ativar o modo de comparação para medir a diferença entre duas variações.
O cabeçalho da tela deixa clara a intenção do módulo: a tarja TRÁFEGO MANUAL, o título REPETIR e o resumo "Edite, reveja versões e compare respostas."
Conceitos essenciais do Repetir #
Antes de abrir a tela, vale fixar os termos que aparecem em botões, chips e configurações.
Request bruta e editor HTTP com realce de sintaxe #
A request bruta é o texto HTTP exatamente como vai para o fio: a linha inicial (MÉTODO alvo HTTP/1.1), os headers (um por linha, no formato Nome: valor), uma linha em branco e, por fim, o corpo. O editor do Repetir aplica realce de sintaxe nesse texto: o método ganha destaque amarelo, a versão HTTP/… fica em cinza, o alvo em azul, os nomes de header em ciano, os dois-pontos em cinza-claro e os valores em verde. As marcações de payload do Intruso, no formato §trecho§, aparecem realçadas em fundo ciano, o que permite preparar posições sem sair do Repetir.
Autocompletar de headers #
Quando você está numa linha de header que ainda não tem dois-pontos, o Repetir mostra chips de SUGESTÕES DE HEADER com os cabeçalhos mais comuns (Authorization, Content-Type, User-Agent, Accept, Cookie, Origin, Referer e outros). Tocar num chip insere o nome do header e o : na linha atual, já com o cursor pronto para o valor. A lista é filtrada pelo que você digitou: comece a escrever Au e só os headers que começam com esse prefixo aparecem.
Reenvio manual e histórico de edições #
Cada envio é um disparo manual e independente. O editor mantém um histórico de edições da request: as setas de voltar e avançar percorrem as versões já digitadas (o subtítulo do painel mostra histórico N/total), funcionando como desfazer e refazer específicos da request. Assim você experimenta uma variação, dispara, volta ao texto anterior e tenta outra, sem perder o caminho percorrido.
Modo de comparação de respostas (A/B) #
Com o modo de comparação ligado, surge uma request B separada da principal. Você mantém a request A intacta, edita a B como variação e compara request e resposta numa tabela: método, host, alvo, contagem de headers (e quantos diferem), tamanho do corpo e linhas alteradas; e, para as respostas, status, tempo, tamanho, tipo de conteúdo e se o corpo ficou igual ou diferente.
Controle de SSL/TLS por envio #
O Repetir deixa você decidir, por envio, como tratar a camada de transporte. Com SSL/TLS ligado, o envio HTTPS negocia TLS normalmente; desligado, o envio força HTTP mesmo que o alvo original estivesse em HTTPS. Há ainda a opção de ignorar erros de certificado, útil em laboratório quando o alvo apresenta um certificado inválido ou autoassinado. Para uma inspeção dedicada de certificado, cadeia e protocolo, use o Analisador SSL/TLS.
Modos de visualização: Bruto, Hex e Render #
Tanto a request quanto a resposta têm um alternador de visualização. BRUTO mostra o texto editável (na request) ou a resposta completa com status, headers e corpo (na resposta). HEX mostra um dump hexadecimal somente leitura. RENDER, disponível só na resposta, faz uma renderização local para HTML e exibe uma árvore formatada para JSON.
| Termo | O que é | Onde aparece |
|---|---|---|
| Request bruta | Texto HTTP cru, editável linha a linha | Painel REQUEST |
| Realce de sintaxe | Cores por método, header, valor e marcação | Editor BRUTO |
| Autocompletar | Chips de headers comuns na linha atual | Painel REQUEST |
| Comparação A/B | Request B separada e tabela de diferenças | Painel COMPARAÇÃO A/B |
| SSL/TLS por envio | Chaves de TLS e de certificado | Configurações |
A tela do Repetir: painéis, abas e modos #
A tela é uma coluna rolável com quatro blocos principais, do topo para baixo.
Cartão de execução manual #
O primeiro cartão, EXECUÇÃO MANUAL, concentra os controles de disparo: o botão ENVIAR, o botão LIMPAR e o ícone de ajustes que abre as configurações. Durante um envio, o ENVIAR vira CANCELAR (e CANCELANDO enquanto a interrupção é concluída).
Painel REQUEST #
O painel REQUEST traz o editor da request principal. No topo há chips de resumo (MÉTODO, HOST, ALVO e tamanho do BODY), as setas de histórico, o alternador BRUTO/HEX, o botão COPIAR e, quando faz sentido, os chips de sugestão de header. Se a primeira linha ainda não tem método, alvo e HTTP/1.1, o painel mostra um aviso explicando o que falta em vez do resumo técnico.
Painel de comparação A/B #
Quando o modo comparação está ligado, o painel COMPARAÇÃO A/B aparece entre a request e a resposta. Ele mostra um selo B PRONTA ou B VAZIA, as tabelas de resumo de REQUEST e RESPONSE, os botões de ação da comparação, os chips da request B e o editor REQUEST B.
Painel RESPONSE #
O painel RESPONSE exibe a resposta do último envio. Traz chips de STATUS, TEMPO, TAMANHO e TIPO, o alternador BRUTO/HEX/RENDER, o botão COPIAR e, quando o CatSuite detecta formatos no corpo (JWT, Base64, JSON e afins), uma faixa CONTEÚDO DETECTADO com chips que abrem a decodificação daquele trecho.
Opções do Repetir e como configurar #
Toque no ícone de ajustes do cartão de execução para abrir a folha CONFIGURAÇÕES DO REPETIR ("Configure o editor, SSL/TLS e a exportação em cURL."). As chaves são persistentes: o CatSuite guarda a sua escolha entre sessões.
| Opção | Valores | Padrão | O que faz |
|---|---|---|---|
| Autocompletar headers | Ligado / Desligado | Ligado | Sugere Authorization, Content-Type, User-Agent e outros headers comuns enquanto você digita o nome de um header. |
| Cores do HTTP | Ligado / Desligado | Ligado | Liga ou desliga o realce visual de método, linha inicial, headers e valores no editor. |
| Ativar SSL/TLS | Ligado / Desligado | Ligado | Quando desligado, o envio força HTTP mesmo que o alvo original esteja em HTTPS. |
| Ignorar erros de certificado | Ligado / Desligado | Desligado | Aceita certificados inválidos durante o envio HTTPS; só fica disponível com SSL/TLS ligado. |
| Manter template padrão ao limpar | Ligado / Desligado | Ligado | Define se o LIMPAR volta ao template GET exemplo.com ou deixa o editor vazio. |
| Modo comparação | Ligado / Desligado | Desligado | Mostra uma request B separada para comparar variações sem sobrescrever a request principal. |
Para ajustar cada uma: deixe Autocompletar headers ligado enquanto monta requests do zero e desligue se os chips atrapalharem a digitação. Cores do HTTP é só conforto visual — desligue se preferir texto monocromático. Ativar SSL/TLS deve ficar ligado para alvos HTTPS reais; desligue apenas para forçar HTTP em testes de laboratório. Ignorar erros de certificado só deve ser usado em ambiente próprio e autorizado, porque desativa uma proteção de transporte. Manter template padrão ao limpar é preferência de produtividade. E Modo comparação você liga quando quiser medir duas variações em paralelo.
No rodapé da folha há o botão EXPORTAR COMO cURL, que gera o comando curl equivalente à request atual (respeitando a escolha de SSL/TLS) e copia para a área de transferência.
Botões e ações do Repetir #
Botões do cartão de execução #
| Botão | O que faz |
|---|---|
| ENVIAR | Dispara a request A. Durante o envio vira CANCELAR; enquanto interrompe, mostra CANCELANDO. |
| LIMPAR | Esvazia a resposta e o editor, respeitando a opção "Manter template padrão ao limpar". |
| Ícone de ajustes | Abre a folha CONFIGURAÇÕES DO REPETIR. |
Botões do painel REQUEST #
| Botão | O que faz |
|---|---|
| Seta voltar | Volta uma versão no histórico de edições da request (desfazer). |
| Seta avançar | Avança uma versão no histórico de edições (refazer). |
| BRUTO / HEX | Alterna o editor entre texto bruto editável e dump hexadecimal somente leitura. |
| COPIAR | Copia a request atual para a área de transferência. |
| Chip de sugestão de header | Insere o header escolhido na linha atual, pronto para o valor. |
Botões da comparação A/B #
| Botão | O que faz |
|---|---|
| USAR A COMO B | Copia a request A para o campo da request B. |
| TROCAR A/B | Inverte as requests A e B (e suas URLs de apoio). |
| ENVIAR B / CANCELAR B | Dispara a request B; durante o envio vira CANCELAR B. |
| COPIAR B | Copia a request B. |
| LIMPAR B | Zera a request B e a resposta dela. |
Menu de contexto do editor #
Ao selecionar texto no editor, surge uma barra de ações específica do Repetir.
| Ação | O que faz |
|---|---|
| COPIAR | Copia a seleção. |
| COLAR | Cola o conteúdo da área de transferência (só no editor editável). |
| DECODIFICAR | Envia a seleção para o Decodificar. |
| NOTAS | Envia a seleção para o Bloco de Notas. |
| TUDO | Seleciona todo o texto do bloco. |
| REQUEST / RESPONSE | Copia o bloco inteiro (request ou resposta). |
Passo a passo: como usar o Repetir #
Reenviar uma request várias vezes #
- Envie uma request para o Repetir a partir do Interceptador, da História ou de outro módulo.
- Confira os chips MÉTODO, HOST e ALVO e ajuste a request bruta no editor.
- Toque em ENVIAR e leia os chips STATUS, TEMPO, TAMANHO e TIPO no painel RESPONSE.
- Altere um campo, dispare de novo e use as setas de histórico para comparar com a versão anterior.
Comparar duas respostas lado a lado #
- Abra as configurações e ligue Modo comparação.
- No painel COMPARAÇÃO A/B, toque em USAR A COMO B para clonar a request atual ou cole uma segunda request completa no editor REQUEST B.
- Edite a request B com a variação que quer testar.
- Toque em ENVIAR (A) e em ENVIAR B e leia as tabelas de resumo para ver onde A e B divergem em status, tamanho, tipo e linhas do corpo.
Ajustar o SSL/TLS de um envio #
- Abra as configurações do Repetir.
- Para um alvo HTTPS real, deixe Ativar SSL/TLS ligado.
- Em laboratório com certificado inválido, ligue Ignorar erros de certificado.
- Para testar o comportamento sem TLS, desligue Ativar SSL/TLS e reenvie; o módulo passa a usar HTTP.
Levar a request para o Intruso #
- No editor, marque as posições de payload envolvendo o trecho com o delimitador
§, no formato§valor§. As marcações ficam realçadas em fundo ciano. - Confira o resultado — o Repetir mostra onde cada marcação cai na request.
- Encaminhe a request para o Intruso usando o atalho "Enviar para o Intruso" disponível no Interceptador, ou copie a request e cole no editor do Intruso.
- No Intruso, use AUTODETECTAR ou MARCAR SELEÇÃO para confirmar as posições e configurar o ataque.
Exemplos de requests #
Request GET simples no formato bruto, igual ao template inicial do módulo.
GET / HTTP/1.1
Host: exemplo.com
User-Agent: Cat Suite
Accept: */*Request POST com corpo JSON. Note a linha em branco separando os headers do corpo.
POST /api/login HTTP/1.1
Host: exemplo.com
Content-Type: application/json
Accept: application/json
{"usuario":"alice","senha":"trocar"}Request com posição marcada para o Intruso usando o delimitador §.
GET /conta/§id§ HTTP/1.1
Host: exemplo.com
User-Agent: Cat SuiteComando gerado pela ação EXPORTAR COMO cURL.
curl --request GET 'https://exemplo.com/' --header 'User-Agent: Cat Suite' --header 'Accept: */*'Problemas comuns e perguntas frequentes (FAQ) #
O envio diz "Cole uma request válida para enviar". O editor está vazio. Cole ou digite uma request bruta completa antes de tocar em ENVIAR.
O resumo técnico não aparece. A primeira linha precisa ter método, alvo e HTTP/1.1, e a request precisa de um header Host (ou uma URL completa na primeira linha). O painel mostra exatamente o que falta.
O envio falhou com erro de TLS. O alvo pode ter certificado inválido ou protocolo incompatível. Em ambiente autorizado, ligue Ignorar erros de certificado; para diagnosticar a conexão, use o Analisador SSL/TLS.
Cancelei o envio por engano. O módulo mostra "Envio cancelado." e mantém a request intacta. É só tocar em ENVIAR de novo.
Preciso testar muitas variações. O Repetir é para replay manual. Para percorrer listas de payloads automaticamente, leve a request para o Intruso com as Wordlists.
A request B sumiu quando outro módulo mandou uma request nova. A request B fica separada da principal e continua intacta: a request importada substitui apenas a A.