Fiddler : capturer et analyser les connexions HTTPS et HTTP

Lorsqu'il s'agit de debugger un site internet ou tout simplement analyser les connexions HTTP, HTTPs d'un PC, on peut utiliser Fiddler Web Debugger.
Ce outil édité par Progress Telerik est capable de capturer et analyser tout le trafic HTTPS du navigateur WEB ou de n'importe quelle application présente sur le PC.
Il enregistre les sessions WEB et peut donner toutes les informations sur l'en-tête, le contenu des requêtes HTTP, WebForm, Cookies, données JSON, ...
De quoi ensuite pouvoir vérifier et analyser complètement toutes les connexions WEB d'un PC.
Mais cela ne s'arrête pas là puisque l'outil donne aussi la possibilité de créer des règles de réponses HTTP automatiques ou encore rejouer une session HTTP enregistrées.

Dans ce tutoriel, je vous explique comment installer et configurer Fiddler et je vous donne quelques exemples d'analyse du trafic WEB d'un PC.

Comment capturer et analyser les connexions HTTPS et HTTP avec Fiddler

Fiddler : comment ça marche

Pour récupérer le trafic WEB de l'ensemble de votre PC, lors du démarrage Fiddler configure un proxy dans Windows.
Ainsi, tout le trafic passe par le processus qui capture et affiche les sessions WEB dans l'application.
A partir de là, vous pouvez monitorer et analyser l'ensemble des connexions HTTP et HTTPS.

Ce dernier est plus approprié pour capturer les connexions WEB que WireShark qui lui va capturer l'ensemble des connexions d'une interface réseau.
Fiddler se concentre sur les sessions HTTP pour récupérer l'intégralité du contenu comme les headers, formulaires, Cookies et bien d'autres.

Fiddler: capture et analyser les connexions HTTPS et HTTP

Installer Fiddler

  • Téléchargez Fiddler depuis ce lien :
  • Saisissez les informations, il n'y a pas de vérification donc vous pouvez saisir de fausses informations
  • Puis lancez le setup et laissez vous guider. Rien d'exceptionnel à signaler concernant l'installation

Déchiffrer le trafic HTTPS

La plupart des sites internet utilisent une connexion sécurisée HTTPS.
Ainsi la connexion est chiffrée, son analyse nécessite de déchiffrer le trafic HTTPS.
Pour cela, il faut installer une certificat racine Fiddler sur le PC.
Voici comment faire :

  • Cliquez sur le menu Tools > Options
  • Puis cliquez sur l'onglet HTTPS
  • Ensuite cochez Capture HTTPS CONNECTEs et Decrypt HTTPS Traffic
Capturer HTTPS Connects et Déchiffrer le trafic HTTP dans Fiddler
  • Confirmer en cliquant sur Yes afin de charger le certificat d'autorité racine
Accepter l'installation du certificat racine d'autorité de Fiddler
  • Confirmez à nouveau en faisant oui
Accepter l'installation du certificat racine d'autorité de Fiddler
  • Passer l'avertissement du contrôle des comptes UAC
  • Puis acceptez l'installation du certificat d'autorité racine DO_NOT_TRUST_FiddlerRoot en cliquant sur Oui
Accepter l'installation du certificat racine d'autorité de Fiddler
  • Enfin confirmez en cliquant sur OK
Accepter l'installation du certificat racine d'autorité de Fiddler

Présentation de l'interface Fiddler

Voici une présentation rapide de l'interface de Fiddler :

  • La barre d'icônes 1
  • Les sessions HTTP, HTTPS enregistrées 2
  • Les onglets pour accéder aux fonctionnalités 3
Présentation de l'interface Fiddler

Les fonctionnalités :

  • Get Started : La page de bienvenue de Fiddler
  • Statistics : Affiche des statistiques sur le nombre d'octets envoyés/reçus, les temps de réponse
  • Inspectors : Permet d'inspecter les sessions HTTP, HTTPS
  • AutoResponder : Créer des règles de réponses automatiques aux requêtes HTTP/HTTPS
  • Composer : Créer une requête HTTP/HTTPS
  • FiddlerScript : Créer des règles pour effectuer des actions automatiques selon le contenu d'une session. Par exemple coloriser automatiquement les images
  • Log : Le journal de l'application
  • Filters : Configurer des filtres
  • TimeLine : Graphique de transfert de données

Faire une capture des connexions HTTP et HTTPS

Une fois exécuté, Fiddler capture automatiquement toutes les connexions HTTP et HTTPS.
Les sessions WEB sont enregistrées et numérotées mais cela peut prendre de la place en mémoire.
Ainsi, il est possible de limiter le nombre de sessions enregistrées en cliquant sur le menu déroulant suivant.
Les anciennes sessions seront automatiques supprimées.

Réduire le nombre de sessions WEB enregistrées dans Fiddler

Voici le contenu des captures Fiddler avec les colonnes de gauche à droite :

  • Le numéro de la sessions WEB Fiddler et une icône d'identification selon le type de contenu (images, HTML)
  • Le code HTTP (200, 301, 400, ...)
  • Le Host : l'adresse du serveur contacté
  • l'URL : l'adresse la page WEB
  • Body : la taille de la requête HTTP
  • L'en-tête cache
  • Le content-Type : le type de contenu avec le type images, text/plain, application/json
  • Le processus : Le processus à l'origine de la connexion HTTP. Cela peut être celui du navigateur internet ou une application en cours d'exécution sur l'appareil
Les colonnes des sessions HTTP/HTTPS de Fiddler

Encore une fois, vous pouvez trier les colonnes, ainsi, on peut regrouper les requêtes HTTP d'un nom d'hôte.

Comme je l'ai indiqué en introduction, Fiddler ne se contente pas de capturer et enregistrer les connexions WEB des navigateurs mais de l'ensemble des applications du PC.
C'est donc un très bon moyen pour surveiller l'activité WEB d'un PC.
La colonne processus vous donne le nom du processus à l'origine de la connexion.

Capturer tout le trafic WEB d'un PC

Inspectors : Analyser les requêtes HTTP / HTTPS

L'inspectors de Fiddler se présente avec une fenêtre scindée en deux.
En haut, la requête du client et en dessous la réponse provenant du serveur WEB.

L'inspectors de Fiddler pour analyser les requêtes HTTP / HTTPS

Les onglets disponibles dans l'inspectors :

  • Transformers : Permet d'appliquer des modifications à la requête comme une compression GZIP, Brotli ou Deflate
  • Headers : Visualiser les en-tête
  • TextView : Afficher le body de la requête WEB au format texte
  • SyntaxView : Afficher le body de la requête WEB en appliquant une syntaxe colorée de code
  • ImageView : Afficher l'image
  • HexView : Afficher les données de la requête HTTP avec un éditeur hexadécimal
  • WebView : Visualiser la requête HTTP. Elle est interprétée et la page s'affiche comme dans un navigateur internet
  • Auth :
  • Caching : Afficher les informations du cache
  • Cookies : Afficher les cookies
  • RAW : Afficher la requête en données brutes
  • JSON : Afficher la requête en JSON
  • XML : Afficher la requête en XML
L'onglet Transformer de Fiddler

La plupart des requêtes HTTP sont encodées et compressées (GZIP, Brotli, Deflate), vous pouvez décoder la requête pour en afficher le contenu.
Pour cela, clique sur le bandeau jaune Reponse body is encoded.
Notez qu'il est possible de le faire automatique (voir plus bas dans les options).

Décoder les requêtes HTTP dans Fiddler

Par exemple ci-dessous, on affiche le header de la réponse du serveur :

Afficher l'en-tête d'une page WEB

Ci-dessous, on prévisualise une image avec l'onglet ImageView.

L'onglet ImageView de Fiddler

Même principe avec le WebView.
Ici le CSS, les images ne sont pas appliquées puisqu'elles sont enregistrées dans d'autres sessions.

L'onglet WebView de Fiddler

Récupérer les champs et les données lors de la transmission d'un formulaire.

Récupérer les données lors de la transmission d'un formulaire WEB

Enfin un dernier exemple avec l'affichage de données au format JSON.

Visualiser les données WEB au format JSON

Enregistrer les sessions HTTP/HTTPS de Fiddler dans un fichier

L'utilitaire Fiddler donne aussi la possibilité d'enregistrer les sessions WEB.
Cela permet de réouvrir celle-ci pour une analyse ultérieure ou les transmettre à un tiers.

Pour enregistrer toutes les sessions :

  • Cliquez sur le menu File
  • Puis Save > All sessions
Enregistrer les sessions HTTP/HTTPS de Fiddler dans un fichier
  • Puis enregistrez le fichier .saz avec le nom dans l'emplacement souhaité
Enregistrer les sessions HTTP/HTTPS de Fiddler dans un fichier
  • Double-cliquez dessus pour réouvrir les sessions dans Fiddler

Il est aussi possible d'enregistrer des sessions spécifiques, pour cela :

  • Sélectionnez les sessions à enregistrer
  • Puis faites un clic droit > Save > In ArchiveZip
Enregistrer les sessions HTTP/HTTPS de Fiddler dans un fichier

Comme vous pouvez le constater on peut aussi copier dans le presse papier au format texte.

Les options de connexion de Fiddler

Le menu Rules permet d'appliquer des règles proposées par défaut dans le logiciel.
Sinon il faut en créer depuis l'onglet Filters.

Par exemple, il est possible de masquer les sessions images et CONNECTs afin de ne pas encombrer les sessions enregistrées.

Masquer les sessions images et CONNECTs dans Fiddler

Mais aussi décoder automatiquement les requêtes HTTP : Removal All Encodings

Décoder automatiquement les requêtes HTTP

On peut aussi changer le useragent du client pour appliquer celui de n'importe quel navigateur internet et même d'un navigateur internet mobile.

Changer le user-Agent dans Fiddler

Enfin on peut aussi jouer sur les performances et simuler la vitesse d'un modem et supprimer tous les caches.

Simuler une connexion lente sur Fiddler

Changer le port Proxy de Fiddler

Par défaut, le proxy Fiddler écoute sur le port 8888 mais il est tout à fait possible de modifier cela dans la configuration et les options.
Pour cela :

  • Cliquez sur menu Tools
  • Puis Options
Le menu Options de Fiddler
  • Puis cliquez sur l'onglet Connections
  • Ensuite changez le port réseau dans la partie Fiddler Listens on port
Changer le port du proxy de Fiddler
  • Cliquez sur OK puis redémarrez Fiddler pour prendre en compte les changements