Fiddler ist ein kostenloser Web-Debugging-Proxy, der es Entwicklern und Sicherheitsexperten ermöglicht, HTTP/HTTPS-Verkehr zwischen einem Client (wie einem Webbrowser oder einer Anwendung) und einem Server auf einem Windows-System zu erfassen, zu inspizieren, zu modifizieren und wiederzugeben. Er agiert als Vermittler, indem er alle Netzwerk-Anfragen und -Antworten, die ihn passieren, abfängt und eine detaillierte Kontrolle und Sichtbarkeit der Webkommunikation bietet.
Fiddler als Ihr Proxy einrichten
Installation
Fiddler Classic kann von seiner offiziellen Telerik-Seite heruntergeladen werden. Die Installation erfolgt über einen standardmäßigen Windows-Setup-Assistenten. Beim ersten Start konfiguriert sich Fiddler typischerweise als System-Proxy.
Fiddlers Standard-Proxy-Konfiguration
Standardmäßig lauscht Fiddler auf 127.0.0.1:8888. Wenn Fiddler startet, ändert es automatisch die Windows-System-Proxy-Einstellungen, um den Verkehr über diese Adresse zu leiten. Wenn Fiddler geschlossen wird, stellt es normalerweise die ursprünglichen System-Proxy-Einstellungen wieder her. Diese automatische Konfiguration vereinfacht die Verwendung für das allgemeine Web-Debugging.
Erfassen von HTTPS-Verkehr
Um HTTPS-Verkehr zu inspizieren, muss Fiddler diesen entschlüsseln. Dies erfordert die Installation von Fiddlers Root-Zertifikat im vertrauenswürdigen Zertifikatsspeicher des Systems.
- Navigieren Sie zu
Tools > Options > HTTPS. - Aktivieren Sie
Capture HTTPS CONNECTs. - Aktivieren Sie
Decrypt HTTPS traffic. - Klicken Sie auf
Actionsund dann aufTrust Root Certificate. Bestätigen Sie alle Sicherheitsabfragen.
Sobald das Zertifikat vertrauenswürdig ist, kann Fiddler einen Man-in-the-Middle-Angriff auf HTTPS-Verbindungen durchführen, indem es temporäre Zertifikate für jede abgefangene Domain generiert, die von seiner vertrauenswürdigen Root signiert sind. Clients, die so konfiguriert sind, dass sie dem Fiddler-Root-Zertifikat vertrauen, senden den Verkehr dann ohne Sicherheitswarnungen über Fiddler.
Fiddler mit einem externen Upstream-Proxy integrieren
Organisationen nutzen oft Unternehmens-Proxys für Netzwerksicherheit, Inhaltsfilterung oder Zugriffskontrolle. Fiddler kann so konfiguriert werden, dass er seinen erfassten Verkehr über einen solchen Upstream-Proxy weiterleitet. Dies ermöglicht das Debuggen von Anwendungen hinter einem Unternehmens-Proxy, ohne die Sicherheitsinfrastruktur zu umgehen.
Fiddler zur Verwendung eines Upstream-Proxys konfigurieren
Um Fiddler mit einem bestehenden Proxy zu verketten:
- Navigieren Sie zu
Tools > Options > Gateway. - Wählen Sie eine der folgenden Optionen:
- Use System Proxy: Fiddler versucht, die auf Betriebssystemebene konfigurierten Proxy-Einstellungen zu verwenden (z. B. in den LAN-Einstellungen des Internet Explorers). Dies ist das Standardverhalten.
- Manual Proxy Configuration: Geben Sie einen benutzerdefinierten Upstream-Proxy an.
- Wählen Sie
Manual Proxy Configuration. - Geben Sie die Proxy-Adresse und den Port im Format
hostname:portoderIP_address:portein. - Beispiel:
corporateproxy.example.com:8080. - Wenn der Upstream-Proxy eine Authentifizierung erfordert, aktivieren Sie
Authenticate with upstream proxyund geben Sie die Anmeldeinformationen an.
- Wählen Sie
- Klicken Sie auf
OK, um die Änderungen zu übernehmen.
Fiddlers Proxy-Verkettungsverhalten
Wenn Fiddler einen Upstream-Proxy verwendet, wird der Verkehrsfluss wie folgt:
Client (z.B. Browser) -> Fiddler (127.0.0.1:8888) -> Upstream Proxy -> Internet
Fiddler führt seine Erfassungs- und Entschlüsselungsfunktionen aus und leitet die (potenziell wieder verschlüsselte) Anfrage dann an den konfigurierten Upstream-Proxy weiter. Der Upstream-Proxy übernimmt dann die Weiterleitung an das endgültige Ziel. Diese Verkettung fügt einen zusätzlichen Hop hinzu, was zu einer geringfügigen Latenz führen kann.
Verkehr mit Fiddler analysieren
Die Sitzungsliste
Die primäre Oberfläche zeigt eine Liste der erfassten Sitzungen an. Jede Zeile repräsentiert eine HTTP/HTTPS-Anfrage und ihre entsprechende Antwort. Wichtige Spalten sind:
* Result: HTTP-Statuscode.
* Protocol: HTTP oder HTTPS.
* Host: Hostname des Zielservers.
* URL: Vollständige Anfrage-URL.
* Body: Größe des Antwortkörpers.
* Caching: Caching-Anweisungen.
Inspektoren
Der Tab "Inspectors" bietet detaillierte Ansichten ausgewählter Anfragen und Antworten.
- Request Inspectors:
- Headers: Zeigt alle HTTP-Anfrage-Header an.
- WebForms: Zeigt URL-kodierte Formulardaten an.
- Raw: Präsentiert die vollständige rohe HTTP-Anfrage.
- JSON/XML: Formatierte Ansicht für JSON/XML-Anfragekörper.
- Response Inspectors:
- Headers: Zeigt alle HTTP-Antwort-Header an.
- TextView: Klartextansicht des Antwortkörpers.
- ImageView: Rendert Bildantworten.
- Raw: Präsentiert die vollständige rohe HTTP-Antwort.
- JSON/XML: Formatierte Ansicht für JSON/XML-Antwortkörper.
AutoResponder
Der Tab "AutoResponder" ermöglicht das Abfangen von Anfragen und das Beantworten mit lokalen Dateien oder benutzerdefinierten Daten, ohne den Server zu kontaktieren. Dies ist nützlich für:
* Mocking APIs: Simulieren von Serverantworten für Entwicklung und Tests.
* Testen von Fehlerbedingungen: Zurückgeben spezifischer HTTP-Statuscodes.
* Inhaltsmodifikation: Einfügen lokaler JavaScript- oder CSS-Dateien.
Regeln können mit exakten Übereinstimmungen, Wildcards oder regulären Ausdrücken definiert werden.
Composer
Der Tab "Composer" ermöglicht Benutzern, HTTP-Anfragen manuell zu erstellen und auszuführen. Dies ist nützlich für:
* Wiederholen von Anfragen: Erneutes Senden einer zuvor erfassten Anfrage, möglicherweise mit Änderungen.
* Testen von API-Endpunkten: Senden benutzerdefinierter Anfragen zur Überprüfung des API-Verhaltens.
* Fuzzing: Wiederholtes Senden von Anfragen mit variierten Parametern.
Benutzer können URL, Header und Anfragekörper vor dem Ausführen der Anfrage ändern.
Filter
Der Tab "Filters" ermöglicht das Filtern der Sitzungsliste, um sich auf relevanten Verkehr zu konzentrieren.
* Hosts: Anzeigen oder Ausblenden von Verkehr zu bestimmten Hostnamen.
* Processes: Filtern des Verkehrs nach dem ursprünglichen Windows-Prozess (z. B. nur Verkehr von chrome.exe anzeigen).
* URL Content: Ausblenden von Sitzungen, deren URL bestimmte Zeichenketten enthält.
* Status Codes: Nur Sitzungen mit bestimmten HTTP-Statuscodes anzeigen.
Beispiel-Filter, um nur Verkehr von einem bestimmten Host anzuzeigen:
// Im Bereich 'Hosts' die Option 'Show only traffic from the following Hosts' aktivieren
// 'example.com' zur Liste hinzufügen.
Häufige Anwendungsfälle für die Proxy-Analyse
Debugging von Webanwendungen
Fiddler hilft bei der Diagnose von Problemen wie:
* Falsch gesendete Anfrageparameter.
* Unerwartete Serverantworten oder Fehlercodes.
* Fehlende oder fehlerhafte HTTP-Header.
* Cross-Origin Resource Sharing (CORS)-Probleme.
Sicherheitstests
- Analyse des Authentifizierungsflusses: Abfangen von Anmeldeanfragen zur Überprüfung der sicheren Übertragung von Anmeldeinformationen.
- Identifizierung von Schwachstellen: Erkennen unverschlüsselter sensibler Daten, unsicherer HTTP-Header oder Fehlkonfigurationen.
- Sitzungsverwaltung: Analyse von Cookie-Attributen und der Verwendung von Sitzungstoken.
Performance-Optimierung
- Ressourcenladung: Identifizieren großer Assets, langsamer Ladezeiten oder ineffizienter Caching-Strategien (z. B. fehlende
Cache-Control-Header). - Anfrage-Overhead: Untersuchung der Anzahl und Größe von Anfragen zur Optimierung der Netzwerknutzung.
API-Entwicklung und -Tests
- API-Inspektion: Verstehen, wie eine Anwendung mit ihren Backend-APIs interagiert.
- API-Mocking: Verwendung des AutoResponders zur Simulation verschiedener API-Antworten für die clientseitige Entwicklung.
- Endpunkt-Validierung: Verwendung des Composers zum Testen von API-Endpunkten mit verschiedenen Payloads und Parametern.
Fiddler vs. andere Proxy-Tools
| Feature | Fiddler Classic (Windows) | Burp Suite Community (Plattformübergreifend) | Charles Proxy (Plattformübergreifend) |
|---|---|---|---|
| Primärer Fokus | Allgemeines Web-Debugging, Entwicklung, Performance. | Web-Sicherheitstests, Penetrationstests. | Allgemeines Web-Debugging, Entwicklung, Performance. |
| Kosten | Kostenlos | Kostenlos (Community Edition), Kostenpflichtig (Professional Edition) | Kostenpflichtig (Testversion verfügbar) |
| OS-Support | Windows | Windows, macOS, Linux | Windows, macOS, Linux |
| HTTPS-Entschlüsselung | Ja, mit Root-Zertifikat-Installation. | Ja, mit Root-Zertifikat-Installation. | Ja, mit Root-Zertifikat-Installation. |
| Hauptmerkmale | AutoResponder, Composer, Filter, umfangreiche Inspektoren. | Proxy, Intruder, Repeater, Sequencer, Decoder, Scanner (Pro). | Proxy, Rewrite, Map Local/Remote, Throttling, DNS-Spoofing. |
| Scripting | FiddlerScript (JScript.NET) für benutzerdefinierte Regeln und Erweiterungen. | Erweiterungen (Java, Python, Ruby). | Benutzerdefinierte Plugins (Java). |
| Benutzerfreundlichkeit | Benutzerfreundlich für Entwickler und Tester. | Steilere Lernkurve, auf Sicherheitsexperten ausgerichtet. | Intuitive Benutzeroberfläche, gut für allgemeines Debugging. |
Fehlerbehebung bei Fiddler-Proxy-Problemen
Verkehr wird nicht angezeigt
- Fiddler-Erfassungsstatus: Stellen Sie sicher, dass
File > Capture Trafficaktiviert ist (oder drücken Sie F12). Die Statusleiste sollte "Capturing" anzeigen. - System-Proxy-Einstellungen: Überprüfen Sie, ob Fiddler den System-Proxy erfolgreich konfiguriert hat. Gehen Sie zu
Tools > Options > Connectionsund stellen Sie sicher, dassAct as system proxy on startupaktiviert ist. - Client-Konfiguration: Wenn Sie eine Nicht-Browser-Anwendung debuggen, stellen Sie sicher, dass sie für die Verwendung von Fiddlers Proxy (
127.0.0.1:8888) konfiguriert ist. - Firewall: Überprüfen Sie, ob eine Firewall Fiddlers Port oder den Netzwerkzugriff blockiert.
HTTPS-Entschlüsselungsfehler
- Zertifikatsvertrauen: Bestätigen Sie, dass das Fiddler-Root-Zertifikat korrekt im System und Browser installiert und vertrauenswürdig ist. Führen Sie
Actions > Trust Root CertificateunterTools > Options > HTTPSerneut aus. - Anwendungsspezifische Vertrauensspeicher: Einige Anwendungen (z. B. mobile Apps, Java-Anwendungen) verwenden eigene Zertifikatsvertrauensspeicher, die den Systemspeicher umgehen. Diese erfordern möglicherweise eine manuelle Installation des Fiddler-Zertifikats in ihren spezifischen Vertrauensspeicher oder die Deaktivierung von Certificate Pinning.
- Abgelaufene Zertifikate: Stellen Sie sicher, dass das Fiddler-Root-Zertifikat nicht abgelaufen ist.
Upstream-Proxy-Konnektivität
- Korrekte Adresse/Port: Überprüfen Sie die Upstream-Proxy-Adresse und den Port unter
Tools > Options > Gatewaydoppelt. - Authentifizierung: Wenn der Upstream-Proxy eine Authentifizierung erfordert, überprüfen Sie die in Fiddler angegebenen Anmeldeinformationen.
- Netzwerkerreichbarkeit: Bestätigen Sie, dass die Maschine, auf der Fiddler läuft, den Upstream-Proxy-Server erreichen kann. Verwenden Sie
pingodertelnet, um die Konnektivität zur IP und zum Port des Upstream-Proxys zu testen. - Upstream-Proxy-Protokolle: Konsultieren Sie die Protokolle des Upstream-Proxys auf Verbindungsablehnungen oder Authentifizierungsfehler.