Burp Suite
L'outil de référence des pentesters pour disséquer le web
Notions théoriques
Vous savez maintenant utiliser OWASP ZAP pour scanner une application web. Mais dans le monde professionnel du test d'intrusion, un autre outil règne en maître : Burp Suite.
Si ZAP est le couteau suisse open source de l'audit web, Burp Suite est le scalpel du pentester. Plus précis, plus configurable, plus puissant dans l'interception et la manipulation manuelle des requêtes. C'est l'outil utilisé quotidiennement par la majorité des auditeurs en sécurité applicative.
Qu'est-ce que Burp Suite ?
Burp Suite est une plateforme de test de sécurité des applications web développée par PortSwigger. Comme ZAP, il fonctionne comme un proxy intercepteur, mais il va beaucoup plus loin dans les possibilités de manipulation manuelle des requêtes HTTP.
Burp Suite existe en trois versions :
| Version | Prix | Usage |
|---|---|---|
| Community Edition | Gratuite | Apprentissage, interception manuelle, fonctionnalités de base |
| Professional | ~449 $/an | Pentest professionnel, scanner automatique complet |
| Enterprise | Sur devis | Intégration CI/CD, scans automatisés à grande échelle |
Dans ce cours, nous utiliserons la Community Edition, qui est gratuite et suffisante pour apprendre.
Burp Suite vs OWASP ZAP : quelles différences ?
| Critère | OWASP ZAP | Burp Suite Community |
|---|---|---|
| Licence | Open source (Apache 2.0) | Gratuite mais propriétaire |
| Scanner automatique | Complet et gratuit | Limité en version gratuite |
| Interception manuelle | Correcte | Excellente (Repeater, Intruder) |
| Extensibilité | Add-ons ZAP | BApps (extensions Java/Python) |
| Facilité de prise en main | Plus simple | Plus complexe mais plus puissant |
| Usage professionnel | Courant en DevSecOps | Standard en pentest |
En résumé : ZAP excelle dans le scan automatique gratuit, tandis que Burp Suite excelle dans l'interception et la manipulation manuelle. Les deux outils sont complémentaires.
Comment fonctionne Burp Suite ?
Comme ZAP, Burp Suite se place entre votre navigateur et le serveur cible en tant que proxy :
[Navigateur] --> [Burp Suite (proxy)] --> [Serveur web]
[Navigateur] <-- [Burp Suite (proxy)] <-- [Serveur web]
Burp écoute par défaut sur 127.0.0.1:8080. Toutes les requêtes HTTP/HTTPS passant par le proxy sont capturées, analysées et peuvent être modifiées à la volée.
Les outils principaux de Burp Suite
Burp Suite est organisé en onglets, chacun correspondant à un outil spécialisé :
1. Proxy — L'intercepteur
C'est le cœur de Burp. L'onglet Proxy permet de :
- Voir toutes les requêtes HTTP qui transitent (
HTTP history) - Intercepter une requête avant qu'elle n'atteigne le serveur (mode
Intercept is on) - Modifier la requête en temps réel, puis la relâcher vers le serveur
C'est comme mettre le trafic réseau en pause pour l'examiner et le modifier.
2. Repeater — Le laboratoire de requêtes
Le Repeater permet de rejouer une requête HTTP autant de fois que nécessaire, en la modifiant à chaque fois. C'est l'outil idéal pour :
- Tester manuellement une injection SQL en ajustant le payload
- Observer précisément comment le serveur réagit à chaque variation
- Comprendre le comportement d'un endpoint sans naviguer dans le navigateur
On envoie une requête depuis le Proxy vers le Repeater d'un clic droit > "Send to Repeater".
3. Intruder — L'outil de fuzzing
L'Intruder permet d'automatiser l'envoi de requêtes en faisant varier un ou plusieurs paramètres. Il est utilisé pour :
- Tester des listes de payloads (dictionnaires de mots de passe, payloads XSS, injections SQL...)
- Faire du brute force sur un formulaire de connexion
- Identifier des réponses anormales qui trahissent une vulnérabilité
En version Community, l'Intruder est volontairement ralenti (throttled). Les attaques par force brute sont donc très lentes. La version Professional lève cette limitation.
4. Decoder — Le convertisseur
Le Decoder encode et décode des données dans différents formats : Base64, URL encoding, HTML entities, hexadécimal, etc. Utile pour :
- Décoder un token JWT
- Encoder un payload XSS pour contourner un filtre
- Comprendre un paramètre encodé dans une URL
5. Comparer — Le comparateur
Le Comparer permet de comparer visuellement deux requêtes ou deux réponses HTTP pour repérer les différences. Utile pour identifier ce qui change entre une requête légitime et une requête d'attaque.
6. Target — La cartographie
L'onglet Target affiche l'arborescence de tous les hôtes et URLs découverts pendant la navigation. Il permet de définir le scope (périmètre) du test pour ne pas déborder sur des domaines non autorisés.
Le navigateur intégré de Burp
Depuis les versions récentes, Burp Suite inclut un navigateur Chromium intégré précconfiguré pour utiliser le proxy Burp. Il n'est donc plus nécessaire de configurer manuellement le proxy dans Firefox.
Pour le lancer : Proxy > Intercept > Open browser.
Ce navigateur gère automatiquement les certificats HTTPS de Burp, ce qui évite les erreurs de certificat lors de l'interception de trafic HTTPS.
Pourquoi apprendre Burp Suite ?
- C'est l'outil le plus demandé dans les offres d'emploi en pentest et sécurité applicative
- Les certifications de sécurité (BSCP de PortSwigger, OSCP, eWPT) l'utilisent comme outil principal
- Il permet de comprendre en profondeur le fonctionnement du protocole HTTP
- La Web Security Academy de PortSwigger (gratuite) propose plus de 250 labs pratiques avec Burp
Exemple pratique
Contexte
Pour pratiquer légalement, nous allons utiliser DVWA (Damn Vulnerable Web Application), une application volontairement vulnérable conçue pour l'apprentissage.
L'application Web DVWA peut être facilement installée en local via Docker :
docker run --rm -it -p 80:80 vulnerables/web-dvwa
Accédez ensuite à http://localhost dans votre navigateur (identifiants par défaut : admin / password).
Étape 1 — Installer et lancer Burp Suite
- Téléchargez Burp Suite Community depuis portswigger.net et installez-le.
- Au lancement, cliquez sur "Temporary project" puis "Next" > "Start Burp".
- Burp écoute par défaut sur
127.0.0.1:8080.
Utilisez le navigateur intégré de Burp (Proxy > Intercept > Open browser) pour éviter de configurer manuellement le proxy dans votre navigateur.
Étape 2 — Naviguer sur DVWA pour capturer le trafic
- Dans le navigateur intégré de Burp, accédez à
http://localhost. - Connectez-vous avec
admin/password. - Naviguez sur quelques pages (SQL Injection, XSS Reflected, etc.).
- Dans Burp, allez dans l'onglet Proxy > HTTP history : vous voyez toutes les requêtes capturées.
Étape 3 — Intercepter et modifier une requête
- Dans Burp, activez l'interception : Proxy > Intercept > "Intercept is on".
- Dans le navigateur, allez sur la page SQL Injection de DVWA et soumettez la valeur
1dans le champ User ID. - La requête est mise en pause dans l'onglet Intercept de Burp. Vous voyez quelque chose comme :
GET /vulnerabilities/sqli/?id=1&Submit=Submit HTTP/1.1
- Modifiez le paramètre
id=1enid=1' OR '1'='1directement dans Burp. - Cliquez sur "Forward" pour envoyer la requête modifiée au serveur.
- Observez dans le navigateur : tous les utilisateurs de la base sont affichés. Vous venez d'exploiter une injection SQL en temps réel.
Étape 4 — Utiliser le Repeater pour affiner l'attaque
- Dans Proxy > HTTP history, trouvez la requête vers
/vulnerabilities/sqli/. - Faites un clic droit > "Send to Repeater".
- Dans l'onglet Repeater, modifiez le paramètre
idavec différents payloads :1' OR '1'='1→ affiche tous les utilisateurs1' UNION SELECT user, password FROM users#→ extrait les mots de passe
- Cliquez sur "Send" à chaque fois et observez la réponse dans le panneau de droite.
Le Repeater est l'outil parfait pour itérer rapidement sur une injection sans devoir naviguer dans le navigateur à chaque essai.
Étape 5 — Tester un XSS avec le Repeater
- Dans HTTP history, trouvez une requête vers
/vulnerabilities/xss_r/(XSS Reflected). - Envoyez-la au Repeater.
- Modifiez le paramètre
nameavec le payload :<script>alert('XSS')</script> - Cliquez sur "Send" et cherchez dans la réponse HTML si le script apparaît sans échappement.
- Si vous voyez
<script>alert('XSS')</script>dans le HTML de la réponse, la faille XSS est confirmée.
Étape 6 — Découvrir la cible avec l'onglet Target
Allez dans l'onglet Target > Site map. Vous voyez l'arborescence complète de DVWA telle que Burp l'a découverte à travers votre navigation. Chaque endpoint est listé avec ses paramètres.
Le Site map est très utile pour avoir une vision globale de la surface d'attaque avant de commencer un audit méthodique.
Test de mémorisation/compréhension
TP 1 — Audit de sécurité de OWASP Juice Shop avec Burp Suite
OWASP Juice Shop est une application Web e-commerce volontairement truffée de vulnérabilités. Elle ressemble à une vraie application moderne : interface Angular, API REST, base de données SQLite, authentification JWT.
Dans ce TP, vous allez utiliser Burp Suite pour intercepter, analyser et exploiter manuellement les failles de Juice Shop. L'accent est mis sur la manipulation manuelle des requêtes, là où Burp excelle.
Partie 1 — Mise en place de l'environnement
Étape 1.1 — Lancer Juice Shop via Docker
Ouvrez un terminal et exécutez la commande suivante :
docker pull bkimminich/juice-shop
docker run --rm -p 3000:3000 bkimminich/juice-shop
Attendez que le terminal affiche une ligne indiquant que le serveur écoute sur le port 3000. Ouvrez ensuite votre navigateur et accédez à :
http://localhost:3000
Vous devez voir apparaître la boutique en ligne Juice Shop avec ses produits.
Si Docker n'est pas installé sur votre machine, téléchargez-le depuis https://www.docker.com/products/docker-desktop
📌 Une solution
Étape 1.2 — Configurer Burp Suite
Lancez Burp Suite Community Edition. Au démarrage :
- Sélectionnez "Temporary project" puis cliquez sur "Next"
- Gardez les paramètres par défaut et cliquez sur "Start Burp"
- Vérifiez que le proxy écoute sur
127.0.0.1:8080dans Proxy > Proxy settings > Proxy listeners
Pour naviguer sur Juice Shop via Burp :
- Option recommandée : cliquez sur Proxy > Intercept > Open browser pour utiliser le navigateur Chromium intégré de Burp (aucune configuration nécessaire)
- Option alternative : configurez manuellement Firefox pour utiliser le proxy
127.0.0.1:8080
Accédez à http://localhost:3000 depuis le navigateur. L'URL doit apparaître dans
Proxy > HTTP history.
📌 Une solution
Partie 2 — Exploration et interception
Étape 2.1 — Naviguer sur Juice Shop et observer le trafic
Désactivez d'abord l'interception (Proxy > Intercept > "Intercept is off") pour naviguer librement sans que chaque requête soit mise en pause.
Naviguez sur Juice Shop pendant environ 5 minutes :
- Parcourez la liste des produits (page d'accueil)
- Cliquez sur plusieurs produits pour voir leur fiche détaillée
- Créez un compte via le formulaire d'inscription (
#/register) - Connectez-vous avec votre nouveau compte
- Ajoutez un produit au panier
- Consultez la page "About Us" et la page de contact
Allez ensuite dans Proxy > HTTP history et examinez les requêtes capturées. Identifiez les endpoints API REST utilisés par l'application.
📌 Une solution
Étape 2.2 — Intercepter le formulaire de connexion
Maintenant, activez l'interception : Proxy > Intercept > "Intercept is on".
- Dans le navigateur, déconnectez-vous puis accédez au formulaire de connexion (
#/login) - Entrez votre email et mot de passe, puis cliquez sur "Log in"
- La requête est mise en pause dans Burp. Vous devriez voir :
POST /rest/user/login HTTP/1.1
Host: localhost:3000
Content-Type: application/json
{"email":"test@test.com","password":"Test1234!"}
- Ne modifiez rien pour l'instant. Cliquez sur "Forward" pour la transmettre au serveur.
- Observez la réponse dans HTTP history : le serveur renvoie un token JWT d'authentification.