Introduction
Burp Suite est un ensemble d'outils puissant pour les tests de sécurité des applications web. L'une de ses fonctionnalités les plus utiles est Burp Comparer, un outil permettant d'effectuer une comparaison visuelle ("diff") de deux morceaux de données quelconques, tels que des requêtes ou des réponses HTTP. Ceci est incroyablement utile pour identifier des différences subtiles qui pourraient révéler des vulnérabilités, telles que des changements dans les jetons de session, les champs de formulaire cachés ou les messages d'erreur.
Dans ce laboratoire, vous apprendrez le flux de travail de base de l'utilisation de Burp Comparer. Vous capturerez deux requêtes HTTP similaires à l'aide du Burp Proxy, les enverrez à l'outil Comparer, puis analyserez les différences mises en évidence.
Trouver deux requêtes similaires dans l'historique de votre proxy
Dans cette étape, vous lancerez Burp Suite et un navigateur web pour générer deux requêtes de connexion similaires. Ces requêtes seront ensuite utilisées pour la comparaison.
Tout d'abord, lancez les applications requises. Vous trouverez Burp Suite et le navigateur web Chromium sur le bureau.
- Double-cliquez sur l'icône Burp Suite sur le bureau pour la démarrer. Si une boîte de dialogue apparaît, vous pouvez utiliser les paramètres par défaut et cliquer sur
Nextpuis surStart Burp. - Double-cliquez sur l'icône Chromium Web Browser sur le bureau.
Ensuite, vous devez capturer du trafic. Nous allons tenter de nous connecter à un site web fictif deux fois avec des identifiants différents.
- Dans Burp Suite, naviguez vers l'onglet
Proxy, puis, à l'intérieur, vers le sous-ongletIntercept. Si le bouton indiqueIntercept is off, cliquez dessus pour qu'il devienneIntercept is on. - Dans le navigateur Chromium, naviguez vers l'adresse suivante :
http://www.google.com. Vous verrez la requête "se bloquer" dans Burp Suite. - Retournez à Burp Suite. Vous verrez la requête capturée. Pour ce laboratoire, nous n'avons pas besoin de la modifier. Cliquez simplement sur le bouton
Forwardpour laisser la requête passer. Répétez cette opération plusieurs fois jusqu'à ce que la page d'accueil de Google se charge dans votre navigateur. - Maintenant, générons nos requêtes cibles. Dans le navigateur, recherchez "login page example". Cliquez sur n'importe quel résultat qui fournit un formulaire de connexion simple. Pour cet exemple, supposons que vous ayez trouvé une page et que vous ayez entré
user1pour le nom d'utilisateur etpass1pour le mot de passe. Cliquez sur le bouton de connexion. - Retournez à Burp Suite et cliquez sur
Forwardpour laisser passer la requête de connexion. - Retournez au navigateur, entrez des identifiants différents, tels que
user2etpass2, et cliquez à nouveau sur le bouton de connexion. - Retournez à Burp Suite et cliquez une fois de plus sur
Forward.
Maintenant que vous avez généré le trafic, vous pouvez trouver les requêtes dans l'historique de votre proxy.
Dans Burp Suite, allez à l'onglet Proxy, puis au sous-onglet HTTP history. Vous verrez ici un journal de toutes les requêtes qui sont passées par le proxy. Parcourez la liste pour trouver les deux requêtes POST vers la page de connexion que vous avez utilisée. Ce sont les deux requêtes que nous comparerons dans les étapes suivantes.
Clic droit sur la première requête et 'Send to Comparer'
Dans cette étape, vous enverrez la première des deux requêtes de connexion à l'outil Comparer.
Restez dans l'onglet Proxy -> HTTP history dans Burp Suite, où vous pouvez voir la liste des requêtes capturées.
- Localisez la première requête de connexion que vous avez effectuée (par exemple, celle contenant les identifiants
user1etpass1). - Faites un clic droit sur cette requête spécifique dans la liste de l'historique. Cela ouvrira un menu contextuel avec de nombreuses options.
- Dans ce menu contextuel, trouvez et sélectionnez l'option
Send to Comparer.
Cette action prend une copie de la requête sélectionnée et la charge dans l'outil Comparer. L'onglet Comparer en haut de la fenêtre Burp Suite devrait maintenant être mis en surbrillance ou changer de couleur, indiquant qu'il a reçu de nouvelles données. Vous pouvez cliquer sur l'onglet Comparer pour confirmer qu'un élément a été chargé.
Clic droit sur la deuxième requête et 'Send to Comparer'
Maintenant, vous allez envoyer la deuxième requête de connexion à l'outil Comparer. Cela fournira le deuxième élément nécessaire à la comparaison.
- Naviguez à nouveau vers l'onglet
Proxy->HTTP history. - Localisez la deuxième requête de connexion que vous avez effectuée (par exemple, celle contenant les identifiants
user2etpass2). - Faites un clic droit sur cette deuxième requête dans la liste de l'historique.
- Dans le menu contextuel qui apparaît, sélectionnez à nouveau
Send to Comparer.
Après avoir effectué cette action, l'onglet Comparer contiendra désormais les deux requêtes. Si vous basculez vers l'onglet Comparer, vous verrez deux éléments listés, prêts à être comparés.
Dans Comparer, sélectionnez les deux éléments et cliquez sur 'Words' pour comparer
Avec les deux requêtes chargées dans Comparer, vous êtes maintenant prêt à effectuer la comparaison réelle.
- Naviguez vers l'onglet
Comparerdans Burp Suite. - En haut de l'interface Comparer, vous verrez une liste des éléments que vous avez envoyés. Elle devrait afficher deux éléments.
- Sélectionnez les deux éléments. Vous pouvez le faire en cliquant d'abord sur le premier élément, puis en maintenant la touche
Ctrlenfoncée et en cliquant sur le second élément. Les deux devraient maintenant être mis en surbrillance. - En bas de la fenêtre, vous verrez des options de comparaison. Les deux options principales sont
WordsetBytes. La comparaisonWordsest idéale pour les données textuelles comme les requêtes HTTP car elle analyse les différences mot par mot, rendant la sortie très lisible. La comparaisonByteseffectue une différence au niveau des octets, ce qui est plus adapté aux données binaires. - Cliquez sur le bouton
Wordspour lancer la comparaison.
Burp Suite va maintenant traiter les deux requêtes et préparer une comparaison visuelle côte à côte.
Analysez les différences mises en surbrillance entre les requêtes
Dans cette dernière étape, vous analyserez les résultats de la comparaison pour comprendre ce qui a changé entre les deux requêtes.
Après avoir cliqué sur Words à l'étape précédente, le panneau principal de l'onglet Comparer se mettra à jour pour afficher les deux requêtes côte à côte. Burp Comparer utilise un système de codage couleur pour faciliter la détection des différences :
- Jaune : Met en surbrillance les données modifiées.
- Rose : Met en surbrillance les données ajoutées.
- Bleu : Met en surbrillance les données supprimées.
Faites défiler les deux panneaux de requête. Les barres de défilement sur le côté auront également des marqueurs de couleur pour vous aider à sauter rapidement aux emplacements des changements.
Vous devriez pouvoir voir clairement les différences dans le corps de la requête. Les valeurs des paramètres username et password (user1 vs user2 et pass1 vs pass2) seront mises en surbrillance en jaune, indiquant qu'elles ont été modifiées.
Selon l'application web, vous pourriez également remarquer d'autres différences. Par exemple :
- L'en-tête
Content-Lengthpourrait être différent si les nouvelles valeurs de paramètres ont une longueur différente. - Un en-tête
Cookiepourrait avoir changé si le serveur a attribué un nouvel identifiant de session.
En analysant ces différences mises en surbrillance, vous pouvez rapidement comprendre comment une application web répond à différentes entrées. C'est une technique fondamentale pour découvrir un large éventail de vulnérabilités de sécurité.
Résumé
Dans ce laboratoire, vous avez appris le flux de travail fondamental de l'utilisation de Burp Comparer pour analyser les requêtes HTTP. Vous avez généré avec succès du trafic réseau, isolé deux requêtes similaires de votre historique de proxy, et les avez envoyées à l'outil Comparer. En effectuant une comparaison basée sur les mots, vous avez pu identifier visuellement les différences exactes entre les deux requêtes.
Cette compétence est essentielle pour de nombreuses tâches de test de sécurité web, telles que l'analyse des mécanismes d'authentification, le test de falsification de paramètres, et l'identification de points d'injection potentiels en observant comment la réponse d'une application change avec différentes entrées.
