O Fiddler é um proxy gratuito de depuração web que permite a desenvolvedores e profissionais de segurança capturar, inspecionar, modificar e reenviar tráfego HTTP/HTTPS entre um cliente (como um navegador ou aplicação) e um servidor em um sistema Windows. Ele funciona posicionando-se como intermediário, interceptando todas as requisições e respostas de rede que passam por ele e oferecendo controle e visibilidade granulares sobre as comunicações web.
Configurando o Fiddler como seu proxy
Instalação
O Fiddler Classic pode ser baixado da página oficial da Telerik. A instalação usa um assistente padrão do Windows. Na primeira execução, o Fiddler normalmente se configura como proxy do sistema.
Configuração padrão de proxy do Fiddler
Por padrão, o Fiddler escuta em 127.0.0.1:8888. Ao iniciar, ele altera automaticamente as configurações de proxy do sistema Windows para direcionar o tráfego para esse endereço. Ao fechar, ele geralmente restaura as configurações originais de proxy do sistema. Essa configuração automática simplifica o uso para depuração web em geral.
Capturando tráfego HTTPS
Para inspecionar tráfego HTTPS, o Fiddler precisa descriptografá-lo. Isso exige instalar o certificado raiz do Fiddler no repositório de certificados confiáveis do sistema.
- Vá em
Tools > Options > HTTPS. - Ative
Capture HTTPS CONNECTs. - Ative
Decrypt HTTPS traffic. - Clique em
Actionse depois emTrust Root Certificate. Confirme os avisos de segurança.
Uma vez que o certificado seja confiável, o Fiddler pode executar um ataque man-in-the-middle nas conexões HTTPS, gerando certificados temporários para cada domínio interceptado, assinados por sua raiz confiável. Clientes configurados para confiar no certificado raiz do Fiddler passarão então a enviar tráfego por ele sem avisos de segurança.
Integrando o Fiddler a um proxy upstream externo
Organizações costumam usar proxies corporativos para segurança de rede, filtragem de conteúdo ou controle de acesso. O Fiddler pode ser configurado para encaminhar o tráfego capturado por esse proxy upstream. Isso permite depurar aplicações atrás de um proxy corporativo sem contornar a infraestrutura de segurança.
Configurando o Fiddler para usar um proxy upstream
Para encadear o Fiddler com um proxy existente:
- Vá em
Tools > Options > Gateway. - Escolha uma das opções a seguir:
- Use System Proxy: o Fiddler tentará usar as configurações de proxy definidas no nível do sistema operacional (por exemplo, nas configurações de LAN do Internet Explorer). Esse é o comportamento padrão.
- Manual Proxy Configuration: especifique um proxy upstream personalizado.
- Selecione
Manual Proxy Configuration. - Informe o endereço e a porta do proxy no formato
hostname:portouIP_address:port. - Exemplo:
corporateproxy.example.com:8080. - Se o proxy upstream exigir autenticação, marque
Authenticate with upstream proxye informe as credenciais.
- Selecione
- Clique em
OKpara aplicar as alterações.
Comportamento de encadeamento de proxy do Fiddler
Quando o Fiddler usa um proxy upstream, o fluxo de tráfego passa a ser:
Cliente (por exemplo, navegador) -> Fiddler (127.0.0.1:8888) -> Proxy upstream -> Internet
O Fiddler executa suas funções de captura e descriptografia e então encaminha a requisição (possivelmente recriptografada) ao proxy upstream configurado. O proxy upstream cuida do roteamento até o destino final. Esse encadeamento adiciona um salto extra, o que pode introduzir uma pequena latência.
Analisando o tráfego com o Fiddler
A lista de sessões
A interface principal exibe uma lista das sessões capturadas. Cada linha representa uma requisição HTTP/HTTPS e sua resposta correspondente. Colunas principais:
* Result: código de status HTTP.
* Protocol: HTTP ou HTTPS.
* Host: hostname do servidor de destino.
* URL: URL completa da requisição.
* Body: tamanho do corpo da resposta.
* Caching: diretivas de cache.
Inspectors
A aba Inspectors oferece visualizações detalhadas das requisições e respostas selecionadas.
- Inspectors de requisição:
- Headers: exibe todos os cabeçalhos HTTP da requisição.
- WebForms: mostra dados de formulário codificados na URL.
- Raw: apresenta a requisição HTTP bruta completa.
- JSON/XML: visualização formatada para corpos de requisição JSON/XML.
- Inspectors de resposta:
- Headers: exibe todos os cabeçalhos HTTP da resposta.
- TextView: visualização em texto puro do corpo da resposta.
- ImageView: renderiza respostas de imagem.
- Raw: apresenta a resposta HTTP bruta completa.
- JSON/XML: visualização formatada para corpos de resposta JSON/XML.
AutoResponder
A aba AutoResponder permite interceptar requisições e responder com arquivos locais ou dados personalizados sem contatar o servidor. É útil para:
* Mockar APIs: simular respostas do servidor para desenvolvimento e testes.
* Testar condições de erro: retornar códigos de status HTTP específicos.
* Modificar conteúdo: injetar arquivos JavaScript ou CSS locais.
As regras podem ser definidas por correspondência exata, curingas ou expressões regulares.
Composer
A aba Composer permite montar e executar requisições HTTP manualmente. É útil para:
* Reenviar requisições: reenviar uma requisição capturada anteriormente, com ou sem modificações.
* Testar endpoints de API: enviar requisições personalizadas para verificar o comportamento da API.
* Fuzzing: enviar repetidamente requisições com parâmetros variados.
O usuário pode alterar a URL, os cabeçalhos e o corpo da requisição antes de executá-la.
Filters
A aba Filters permite filtrar a lista de sessões para focar no tráfego relevante.
* Hosts: mostrar ou ocultar tráfego de hostnames específicos.
* Processes: filtrar o tráfego pelo processo Windows de origem (por exemplo, mostrar apenas o tráfego de chrome.exe).
* URL Content: ocultar sessões cuja URL contenha determinadas strings.
* Status Codes: exibir apenas sessões com certos códigos de status HTTP.
Exemplo de filtro para mostrar apenas o tráfego de um host específico:
// Na seção 'Hosts', marque 'Show only traffic from the following Hosts'
// Adicione 'example.com' à lista.
Casos de uso comuns para análise de proxy
Depuração de aplicações web
O Fiddler ajuda a diagnosticar problemas como:
* Parâmetros de requisição enviados incorretamente.
* Respostas do servidor ou códigos de erro inesperados.
* Cabeçalhos HTTP ausentes ou malformados.
* Problemas de compartilhamento de recursos entre origens (CORS).
Testes de segurança
- Análise do fluxo de autenticação: interceptar requisições de login para verificar a transmissão segura de credenciais.
- Identificação de vulnerabilidades: detectar dados sensíveis não criptografados, cabeçalhos HTTP inseguros ou configurações incorretas.
- Gerenciamento de sessão: analisar atributos de cookies e o uso de tokens de sessão.
Otimização de desempenho
- Carregamento de recursos: identificar assets grandes, tempos de carregamento lentos ou estratégias de cache ineficientes (por exemplo, cabeçalhos
Cache-Controlausentes). - Overhead de requisições: examinar a quantidade e o tamanho das requisições para otimizar o uso da rede.
Desenvolvimento e teste de APIs
- Inspeção de API: entender como uma aplicação interage com suas APIs de backend.
- Mock de API: usar o AutoResponder para simular diversas respostas de API no desenvolvimento client-side.
- Validação de endpoints: usar o Composer para testar endpoints de API com diferentes payloads e parâmetros.
Fiddler vs. outras ferramentas de proxy
| Característica | Fiddler Classic (Windows) | Burp Suite Community (multiplataforma) | Charles Proxy (multiplataforma) |
|---|---|---|---|
| Foco principal | Depuração web geral, desenvolvimento, desempenho. | Testes de segurança web, pentest. | Depuração web geral, desenvolvimento, desempenho. |
| Custo | Grátis | Grátis (Community Edition), pago (Professional Edition) | Pago (com versão de teste) |
| Suporte a SO | Windows | Windows, macOS, Linux | Windows, macOS, Linux |
| Descriptografia HTTPS | Sim, com instalação do certificado raiz. | Sim, com instalação do certificado raiz. | Sim, com instalação do certificado raiz. |
| Recursos principais | AutoResponder, Composer, Filters, Inspectors completos. | Proxy, Intruder, Repeater, Sequencer, Decoder, Scanner (Pro). | Proxy, Rewrite, Map Local/Remote, Throttling, DNS spoofing. |
| Scripting | FiddlerScript (JScript.NET) para regras e extensões próprias. | Extensões (Java, Python, Ruby). | Plugins personalizados (Java). |
| Usabilidade | Amigável para desenvolvedores e testadores. | Curva de aprendizado mais íngreme, voltada a profissionais de segurança. | UI intuitiva, boa para depuração geral. |
Solução de problemas do proxy Fiddler
O tráfego não aparece
- Status de captura do Fiddler: verifique se
File > Capture Trafficestá marcado (ou pressione F12). A barra de status deve exibir "Capturing". - Configurações de proxy do sistema: confirme que o Fiddler configurou o proxy do sistema com sucesso. Vá em
Tools > Options > Connectionse verifique seAct as system proxy on startupestá marcado. - Configuração do cliente: ao depurar uma aplicação que não é navegador, garanta que ela esteja configurada para usar o proxy do Fiddler (
127.0.0.1:8888). - Firewall: verifique se algum firewall está bloqueando a porta ou o acesso de rede do Fiddler.
Erros de descriptografia HTTPS
- Confiança no certificado: confirme que o certificado raiz do Fiddler está instalado e é confiável no sistema e no navegador. Execute novamente
Actions > Trust Root CertificateemTools > Options > HTTPS. - Repositórios de confiança específicos da aplicação: algumas aplicações (por exemplo, apps móveis, aplicações Java) usam repositórios de certificados próprios, ignorando o do sistema. Nesses casos pode ser necessário instalar manualmente o certificado do Fiddler no repositório específico ou desativar o certificate pinning.
- Certificados expirados: verifique se o certificado raiz do Fiddler não está expirado.
Conectividade com o proxy upstream
- Endereço/porta corretos: confira novamente o endereço e a porta do proxy upstream em
Tools > Options > Gateway. - Autenticação: se o proxy upstream exigir autenticação, verifique as credenciais informadas no Fiddler.
- Alcance de rede: confirme que a máquina que executa o Fiddler consegue alcançar o servidor de proxy upstream. Use
pingoutelnetpara testar a conectividade com o IP e a porta do proxy upstream. - Logs do proxy upstream: consulte os logs do proxy upstream em busca de recusa de conexão ou erros de autenticação.
