Introduction à Burp Suite - Proxy, Scanner, Intruder et Repeater

Burp est un outil incontournable en sécurité offensive. En effet, il s’agit d’un logiciel utilisé par une majorité de professionnels (dont les pentesters que nous sommes) et dédié notamment aux pentests d’applications web. 

Dans cet article, nous passerons en revue les principales fonctionnalités (les modules fondamentaux), extensions clés et spécificités de Burp Suite.  

Qu’est-ce que Burp Suite ?

Burp Suite est un logiciel spécialisé pour les audits de sécurité web (pentests web). Il est développé par l’entreprise PortSwigger qui est une référence dans le monde de la sécurité web.

Burp Suite, appelé le plus souvent seulement Burp, est optimisé et pensé pour répondre aux besoins des pentesters professionnels et est d’ailleurs l’outil le plus utilisé dans son domaine. C’est un outil modulaire permettant de réaliser à la fois des tests manuels et automatisés qui vont aider le pentester à identifier efficacement des vulnérabilités sur les applications web.

Dans la suite de cet article, nous détaillerons les différentes fonctionnalités de Burp ainsi que les extensions clés. 

Avant d’aller plus loin, il est important de noter que Burp Suite est disponible dans deux versions différentes :

  • Burp Suite Community Edition
  • Burp Suite Professional

La première est gratuite mais comporte des fonctionnalités en moins et limitées par rapport à la version payante « Professional ».

Cette dernière est donc, comme son nom l’indique, adaptée à un usage professionnel et c’est d’ailleurs sur celle-ci que s’appuie cet article.

Ci-dessous un tableau récapitulant les différences entre les deux versions du logiciel :

Lors d’un pentest web, un pentester va généralement utiliser Burp Suite 90% du temps, ce qui en fait un outil incontournable. Il existe certaines alternatives comme le logiciel ZAP, développé par l’OWASP mais Burp Suite reste la référence dans le monde du pentest web.

Le fonctionnement global de Burp est pensé de façon modulaire. Certains de ses modules sont installés par défaut sur le logiciel. Ce sont les modules essentiels à la conduite d’un audit. D’autres modules complémentaires nommés extensions sont disponibles au téléchargement via l’extender (le « catalogue » de Burp).

En effet, la force de Burp Suite, outre sa modularité et son ergonomie, réside dans sa communauté très active qui développe de nouvelles extensions et créée de la documentation détaillée sur les modules.

Burp est un outil complet qui saura répondre à la majorité des besoins d’un pentester. Même si dans le cas où les fonctionnalités de base ne répondent pas à un besoin spécifique, il existe dans la plupart des cas, une extension développée par la communauté et prévue à cet effet.

En résumé, l’outil Burp Suite présente de nombreux avantages :

  • Modularité
  • Gain de temps
  • Simple d’utilisation
  • Communautaire
  • Scanner de vulnérabilités

Fonctionnalités principales de Burp Pro

La fonctionnalité principale de Burp Suite est le Proxy. Le Proxy va permettre à Burp de jouer le rôle d’intermédiaire entre le client (navigateur web) et le serveur hébergeant l’application web.

En se plaçant entre ces deux composants, Burp va pouvoir intercepter l’intégralité des échanges et des requêtes réalisés entre le navigateur web et le serveur. Le pentester va donc pouvoir analyser en détail les requêtes, et s’il le veut, les modifier à la volée.

Pour modifier à la volée les requêtes, le Proxy permet d’intercepter les requêtes une par une et de laisser le choix au pentester de les laisser passer ou de les rejeter. S’il les laisse passer, il peut donc les modifier à la volée avant de les transmettre au serveur.

Sinon, le Proxy permet également de visualiser l’historique des requêtes en direct sans avoir à les transmettre manuellement au serveur. C’est d’ailleurs le mode le plus utilisé du Proxy.

Interface du module Proxy de Burp Suite

On peut voir sur l’image ci-dessus, l’historique des requêtes faites au domaine « vaadata.com ». Lorsque l’on sélectionne une requête, il est possible de voir la requête envoyée par le navigateur et la réponse du serveur. A chaque fois que le pentester interagira avec l’application web sur son navigateur, une nouvelle requête apparaîtra dans l’historique.

Le Repeater

Le Repeater est le module qui va permettre de rejouer des requêtes à volonté. Comme son nom l’indique, le pentester va pouvoir répéter des requêtes et les modifier à sa guise avant de les envoyer au serveur.

Il pourra ainsi analyser la réponse du serveur en fonction de ce qu’il a modifié. Le Repeater est souvent utilisé pour identifier manuellement des failles et les exploiter.

Interface du module Repeater de Burp Suite

Sur l’image ci-dessus, on peut voir que la requête de base est composée d’une url qui prend en paramètre « search » le mot « recherche ».

Grâce au Repeater, le pentester pourra rejouer la requête et tester par exemple si une injection de code JavaScript est possible :

Relance d’une requête dans le Repeater

Dans ce cas présent, le Repeater aura permis d’identifier une faille de type XSS.

L’intruder, l’outil d’intrusion

L’Intruder est un outil puissant qui va permettre d’automatiser l’envoi d’une requête comportant un payload personnalisé. Grâce à l’Intruder on va par exemple pouvoir automatiquement incrémenter une valeur et envoyer chaque incrémentation au serveur. L’Intruder va permettre au pentester d’automatiser des tâches fastidieuses ou impossibles à réaliser manuellement comme l’envoi de plusieurs milliers de requêtes. Les possibilités d’utilisation de l’Intruder sont quasi-infinies et permettent d’ajouter plusieurs payloads de même ou de différents types.

L’Intruder comporte un onglet « Positions » où le pentester pourra définir la position du payload dans la requête. Ensuite il pourra choisir le type de payload à injecter dans l’onglet « Payloads ».

Onglet Position de l’Intruder

Dans l’image ci-dessus, la requête de base fait appel à un fichier « 2.txt ». Grâce à l’Intruder, il sera possible tester par exemple si les fichiers 1 à 100 existent. Pour cela, il suffit de placer les signes « § » autour de la valeur que nous allons incrémenter et choisir une plage de 1 à 100 dans l’onglet « Payloads » :

Onglet Payloads de l’Intruder

Ensuite il suffira d’appuyer sur le bouton « Start attack » pour lancer l’Intruder avec notre configuration. Une fenêtre apparaîtra et nous exposera les résultats des différentes requêtes :

Fenêtre des résultats de l’Intruder

En l’occurrence, on peut voir que le fichier « 1.txt » existe également. 

Le Scanner est une des fonctionnalités les plus utiles de l’édition « Professional » de Burp Suite. En effet, le Scanner va permettre d’effectuer automatiquement, des scans passifs sur l’intégralité des requêtes entre le client et le serveur et des scans actifs sur les requêtes choisies par le pentester.

Un scan passif est un type de scan où le trafic va être analysé et qui va remonter des vulnérabilités si des paternes sont reconnus par le scanner. Par exemple le Scanner de Burp va nous remonter des informations s’il aperçoit des adresses email dans les réponses serveurs. Lors des scans passifs, le Scanner ne va pas modifier les requêtes.

À l’inverse, un scan actif est un type de scan où le scanner va délibérément modifier la requête. Le Scanner va injecter des payloads malveillants dans une ou plusieurs requêtes choisies par le pentester et va analyser la réponse serveur. Si le scanner identifie un paterne qui est la conséquence directe du payload injecté, alors il nous remontera une vulnérabilité plus ou moins critique.

Le Scanner de Burp est donc un outil incontournable pour le pentester qui gagnera en temps et en efficacité.

Pour lancer un scan actif, il suffit d’envoyer la requête dans l’Intruder, spécifier la position du payload comme pour une utilisation classique de l’Intruder, faire un clique-droit sur la requête et appuyer sur « Do active scan ».

Lancement d’un scan actif

Le résultat du scan sera ensuite visible dans l’onglet « Dashboard » de Burp Suite :

Résultats des scans

Le Collaborator de Burp va permettre au pentester d’avoir une plateforme tierce sur Internet, accessible depuis n’importe où. Le Collaborator va servir notamment à exploiter des failles qui ne retournent aucune information dans la réponse serveur permettant de valider la faille.

On va parler de failles qui ne retournent aucunes erreurs, aucunes réponses anormales ou qui ne causent aucuns délais.

Par exemple, si la faille en question permet d’exécuter des commandes système sur le serveur mais que le résultat de la commande n’est pas visualisable dans la réponse serveur, on pourra utiliser le Collaborator pour exfiltrer le résultat de la commande.

Dans l’exemple suivant, nous pouvons injecter une commande système dans le paramètre « email » qui va exécuter un « curl » sur l’url du Collaborator et récupérer le résultat de la commande grâce au Collaborator :

Injection de la commande curl
Récupération du résultat de la commande dans le Collaborator

Les extensions clés de Burp Suite  

Les extensions sont l’essence de l’esprit communautaire de Burp. Il est possible d’ajouter des extensions aussi bien développées par PortSwigger que par la communauté pour répondre à des besoins additionnels et pour étendre les capacités de Burp.

Le volet Extension de Burp permet donc, comme son nom l’indique, de télécharger des extensions officielles ou communautaires. Nous verrons dans la suite de cet article, les extensions que nous considérons comme essentielles pour un pentester web.

Catalogue des extensions de Burp Suite

Ces deux extensions sont très utiles pour augmenter la liste des tests effectués par le Scanner Burp. Grâce à ces deux extensions, le pentester pourra potentiellement identifier des vulnérabilités qui n’auraient pas été détectées par le scanner de base.

Hackvertor est une boite à outils permettant de convertir n’importe quelle chaine de caractère en l’encodage voulu. Cette extension utilise des balises XML autour de la chaine de caractère pour préciser quel type d’encodage ou de conversion à utiliser. Il est également possible d’utiliser ces balises dans n’importe quel module de Burp comme le Repeater ou l’Intruder, et il est également possible de créer ses propres balises XML de conversion pour un usage avancé.

Interface d’Hackvertor

Ces deux extensions vont faciliter le pentester pour les tests de droits. En effet, pour chaque requête, Auth Analyzer ou AuthMatrix va rejouer la requête avec des droits différents configurés par le pentester.

Pour plus de détails sur le fonctionnement d’AuthMatrix, vous pouvez consulter notre article : Fonctionnalités et extensions de Burp pour gagner en efficacité.

Concernant la différence entre ces deux extensions, AuthMatrix est plus utilisée lorsque le pentester à un petit nombre de requêtes à tester ou si certaines requêtes performent des opérations sensibles à ne pas répéter comme la création ou la suppression de données. Le pentester doit d’ailleurs sélectionner les requêtes à tester.

Quant à l’extension Auth Analyzer, elle est plus simple d’utilisation et est souvent utilisée lorsqu’un un grand nombre de requêtes doivent être testées. Ainsi, les requêtes seront rejouées automatiquement avec des droits différents au fur et à mesure que le pentester évoluera sur l’application web.

L’extension Param Miner va permettre notamment de rechercher des headers ou des paramètres cachées dans une requête donnée. C’est une extension particulièrement utile pour identifier des failles de type « web cache poisoning ».

Pour l’utiliser, il suffit de faire un clique-droit sur la requête voulue, choisir « Extensions », « Param Miner » et choisir le type de test que nous voulons effectuer. Dans l’exemple ci-dessous, nous essayons de chercher des headers cachés :

Lancement de Param Miner

Si un header est trouvé, une vulnérabilité sera remontée dans l’onglet « Dashboard » :

Résultat du Param Miner

Dans notre cas, Param Miner a identifié qu’il était possible d’utiliser le header « X-Forwarded-Host ».

Enfin, Stepper est une extension permettant de rejouer une séquence de requêtes choisies. Stepper permet d’ailleurs de définir des variables dynamiques dans les séquences, qui pourront ensuite être réutilisées dans certains modules de Burp Suite comme le Repeater ou l’Intruder.

Pour plus d’informations sur cette extension, vous pouvez consulter notre article : Audit d’une application protégée par jeton CSRF avec Stepper.

Auteur : Lorenzo CARTE – Pentester @Vaadata