Modifier une Réponse HTTP à la Volée dans Burp Proxy

Beginner
Pratiquer maintenant

Introduction

Burp Suite est une plateforme puissante pour effectuer des tests de sécurité des applications web. L'un de ses composants principaux est le Burp Proxy, qui agit comme un homme du milieu (man-in-the-middle) entre votre navigateur et le serveur web cible. Cela vous permet d'intercepter, d'inspecter et de modifier le trafic brut circulant dans les deux sens.

Bien que l'interception des requêtes soit une tâche courante, l'interception et la modification des réponses sont tout aussi importantes pour les tests de sécurité. Elles vous permettent de tester comment l'application côté client gère les données inattendues ou manipulées provenant du serveur.

Dans ce laboratoire, vous apprendrez à configurer Burp Proxy pour intercepter les réponses du serveur et modifier le contenu HTML d'une page web avant qu'elle ne soit affichée dans votre navigateur. Nous utiliserons un serveur web local simple pour cette démonstration.

Dans cette étape, vous allez configurer Burp Suite pour activer l'interception des réponses du serveur web. Par défaut, Burp Proxy n'intercepte que les requêtes sortantes du navigateur.

Tout d'abord, vous devez lancer Burp Suite. Vous pouvez le trouver dans le menu des applications ou en le recherchant.

Une fois Burp Suite ouvert :

  1. Cliquez sur l'onglet Proxy en haut de la fenêtre.
  2. Dans l'onglet Proxy, cliquez sur le sous-onglet Options.
  3. Faites défiler les options jusqu'à trouver la section intitulée Intercept Server Responses.

Cette section contient les paramètres qui contrôlent si et comment Burp Proxy intercepte les réponses HTTP entrantes. Vous avez maintenant localisé la zone de configuration nécessaire pour l'étape suivante.

Cocher la case 'Intercept responses based on the following rules'

Dans cette étape, vous allez activer la fonctionnalité d'interception des réponses.

Dans la section Intercept Server Responses que vous avez localisée à l'étape précédente, vous verrez une case à cocher.

  1. Cliquez sur la case à cocher à côté de l'étiquette Intercept responses based on the following rules.

Une fois que vous cochez cette case, Burp Proxy est configuré pour intercepter les réponses du serveur qui correspondent aux règles définies en dessous. La règle par défaut, Is a response to a request that was intercepted, est automatiquement ajoutée et est parfaite pour nos besoins. Cette règle indique à Burp de n'intercepter une réponse que si sa requête correspondante a également été interceptée par le proxy. Cela évite à Burp de s'arrêter sur chaque réponse, comme celles des images d'arrière-plan ou des scripts, et se concentre uniquement sur le trafic que vous inspectez activement.

Intercepter une Requête et la Transmettre

Dans cette étape, vous utiliserez le navigateur intégré de Burp pour effectuer une requête vers notre serveur web local et l'intercepter.

  1. Naviguez vers le sous-onglet Proxy > Intercept.
  2. Assurez-vous que le bouton indique Intercept is on. S'il indique "Intercept is off", cliquez dessus pour activer l'interception.
  3. Cliquez sur le bouton Open Browser. Une nouvelle fenêtre de navigateur Chromium, pré-configurée pour utiliser le Burp Proxy, s'ouvrira.
  4. Dans la barre d'adresse du navigateur, tapez http://127.0.0.1:8000 et appuyez sur Entrée.

Le navigateur semblera charger indéfiniment. C'est parce que Burp a intercepté la requête HTTP. Revenez à la fenêtre Burp Suite. Dans l'onglet Proxy > Intercept, vous verrez la requête HTTP brute :

GET / HTTP/1.1
Host: 127.0.0.1:8000
... (other headers)

Ceci est la requête de votre navigateur vers le serveur local. Pour lui permettre de continuer vers le serveur, cliquez sur le bouton Forward. Après avoir transmis la requête, Burp attendra maintenant d'intercepter la réponse provenant du serveur.

Modifier le Corps HTML dans la Réponse Interceptée

Dans cette étape, vous allez modifier le contenu de la réponse HTTP avant qu'elle ne soit envoyée au navigateur.

Parce que vous avez activé l'interception des réponses et transmis la requête à l'étape précédente, l'onglet Proxy > Intercept contient maintenant la réponse du serveur. Elle ressemblera à ceci :

HTTP/1.0 200 OK
Server: SimpleHTTP/0.6 Python/3.10.6
Date: ...
Content-type: text/html
Content-Length: ...

<h1>Welcome to the Original Page!</h1><p>This is the content you will modify.</p>

La zone de texte principale est modifiable. C'est ici que vous pouvez modifier la réponse à la volée.

  1. Dans la zone de texte du corps de la réponse, trouvez la ligne <h1>Welcome to the Original Page!</h1>.
  2. Changez le texte en <h1>Welcome to the Modified Page!</h1>.
  3. Vous pouvez également modifier le texte du paragraphe si vous le souhaitez, par exemple, en <p>This content has been changed by Burp Proxy.</p>.

Vous avez maintenant modifié la réponse du serveur. Elle est toujours retenue par Burp Proxy et n'a pas encore atteint le navigateur.

Transmettre la Réponse Modifiée et Observer le Changement dans le Navigateur

Dans cette dernière étape, vous allez envoyer la réponse modifiée au navigateur et observer le résultat.

La réponse modifiée attend toujours dans l'onglet Proxy > Intercept.

  1. Cliquez une dernière fois sur le bouton Forward. Cela libérera la réponse et enverra votre version modifiée au navigateur.
  2. Revenez à la fenêtre Burp Browser qui était en cours de chargement précédemment.

La page terminera alors son chargement, mais au lieu du contenu original, elle affichera le texte que vous avez saisi. Vous devriez voir :

Welcome to the Modified Page! This content has been changed by Burp Proxy.

Félicitations ! Vous avez réussi à intercepter une réponse HTTP, à modifier son contenu en transit, et à observer le changement dans le navigateur. Cela démontre une capacité fondamentale pour les tests de sécurité des applications web. Vous pouvez maintenant désactiver l'interception en cliquant sur le bouton "Intercept is on".

Résumé

Dans ce laboratoire, vous avez acquis une expérience pratique d'une fonctionnalité clé de Burp Suite. Vous avez appris à :

  • Configurer Burp Proxy pour intercepter les réponses du serveur, une fonctionnalité désactivée par défaut.
  • Suivre le flux de travail consistant à intercepter une requête, la transmettre, puis intercepter la réponse correspondante.
  • Modifier le corps d'une réponse HTTP en temps réel avant qu'elle n'atteigne le navigateur.
  • Observer l'impact direct de la modification de la réponse sur la page web rendue.

Cette technique est fondamentale en sécurité web pour tester la manière dont le code front-end d'une application web gère des données inattendues ou malveillantes provenant du serveur, potentiellement pour découvrir des vulnérabilités telles que le Cross-Site Scripting (XSS) ou le contrôle d'accès défectueux.