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
Vous devez être connecté pour voir le contenu.
É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
Vous devez être connecté pour voir le contenu.
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
Vous devez être connecté pour voir le contenu.
É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.
Une solution
Vous devez être connecté pour voir le contenu.
Partie 3 — Exploitation des vulnérabilités avec le Repeater
Étape 3.1 — Injection SQL sur l'endpoint de recherche
- Dans HTTP history, trouvez une requête vers
/rest/products/search?q= - Faites un clic droit > "Send to Repeater"
- Dans l'onglet Repeater, modifiez le paramètre
qavec les payloads suivants, en cliquant sur "Send" à chaque fois :
Test 1 — Détection de la faille :
q='
Test 2 — Extraction de tous les produits :
q='))--
Test 3 — Extraction des données utilisateurs (UNION SELECT) :
q=')) UNION SELECT id, email, password, '4', '5', '6', '7', '8', '9' FROM Users--
Pour chaque test, observez la réponse dans le panneau de droite du Repeater.
Une solution
Vous devez être connecté pour voir le contenu.
Étape 3.2 — Contournement d'authentification par injection SQL
- Dans HTTP history, trouvez la requête POST vers
/rest/user/login - Envoyez-la au Repeater (clic droit > "Send to Repeater")
- Dans le corps JSON de la requête, modifiez le champ email :
{"email":"' OR 1=1--","password":"anything"}
- Cliquez sur "Send" et observez la réponse.
Une solution
Vous devez être connecté pour voir le contenu.
Étape 3.3 — Tester un XSS via le Repeater
- Dans HTTP history, trouvez une requête vers la page de recherche
ou vers
/rest/products/search?q=test - Envoyez-la au Repeater
- Modifiez le paramètre de recherche avec :
<iframe src="javascript:alert(`xss`)">
- Observez si le payload apparaît sans échappement dans la réponse HTML.
Ensuite, testez directement dans le navigateur intégré de Burp :
http://localhost:3000/#/search?q=<iframe src="javascript:alert(`xss`)">
Une solution
Vous devez être connecté pour voir le contenu.
Partie 4 — Utilisation de l'Intruder pour le fuzzing
Étape 4.1 — Préparer une attaque par dictionnaire sur le login
- Dans HTTP history, trouvez la requête POST vers
/rest/user/login - Faites un clic droit > "Send to Intruder"
- Dans l'onglet Intruder > Positions, Burp surligne automatiquement les paramètres.
Cliquez sur "Clear §" pour tout désélectionner, puis sélectionnez uniquement la valeur
du champ
passwordet cliquez sur "Add §" :
{"email":"admin@juice-sh.op","password":"§anything§"}
- Allez dans l'onglet Payloads :
- Type : "Simple list"
- Ajoutez manuellement quelques mots de passe courants :
admin
password
123456
admin123
test
letmein
- Cliquez sur "Start attack"
Une solution
Vous devez être connecté pour voir le contenu.
Étape 4.2 — Analyser les résultats de l'Intruder
Dans la fenêtre de résultats de l'Intruder, triez par code de statut ou par longueur de réponse. Les réponses qui diffèrent des autres (par le code HTTP ou la taille) indiquent généralement un succès.
Cliquez sur la ligne avec le code 200 et examinez la réponse complète dans le panneau inférieur. Vous y retrouverez le token JWT d'authentification de l'administrateur.
Une solution
Vous devez être connecté pour voir le contenu.
Partie 5 — Analyse et rapport
Étape 5.1 — Documenter les vulnérabilités trouvées
Créez un fichier texte rapport-burp-juiceshop.md et documentez chaque vulnérabilité
exploitée durant ce TP :
Pour chaque faille, notez :
- Le nom de la vulnérabilité
- L'endpoint concerné et le paramètre vulnérable
- La requête exacte (copiée depuis le Repeater de Burp)
- La réponse du serveur qui confirme la vulnérabilité
- La correction recommandée
Une solution
Vous devez être connecté pour voir le contenu.
Étape 5.2 — Rédiger le plan de remédiation
Sur la base de vos découvertes, rédigez un court plan de remédiation (15 à 20 lignes) destiné à l'équipe de développement. Ce document doit :
- Lister les 3 vulnérabilités les plus critiques trouvées, par ordre de priorité
- Pour chacune, expliquer le risque en termes métier (pas uniquement technique)
- Proposer une correction précise avec un exemple de code si possible
- Évaluer grossièrement la difficulté de correction (facile / modérée / complexe)
Une solution
Vous devez être connecté pour voir le contenu.
Récapitulatif de ce que vous avez accompli
Au terme de ce TP, vous avez configuré Burp Suite comme proxy d'interception, capturé et analysé le trafic HTTP d'une application moderne, exploité manuellement une injection SQL via le Repeater pour extraire des données sensibles, contourné l'authentification par injection SQL, utilisé l'Intruder pour une attaque par dictionnaire sur un formulaire de connexion, et produit un rapport d'audit structuré avec plan de remédiation.
Contrairement à l'approche automatisée de ZAP, vous avez ici construit chaque attaque manuellement, ce qui donne une compréhension bien plus profonde des vulnérabilités et de leur mécanisme.
TP 2 — Audit de sécurité de DVWA avec Burp Suite
Contexte du TP
Vous êtes auditeur en sécurité applicative, et un client vous confie l'audit de son application Web interne. Pour simuler cette situation, vous utilisez DVWA en local et Burp Suite Community.
Travail demandé
Partie 1 — Mise en place
- Lancez DVWA via Docker :
docker run --rm -it -p 80:80 vulnerables/web-dvwa - Connectez-vous à
http://localhostavecadmin/password. - Cliquez sur le bouton "Create database" (si cela n'a pas déjà été fait).
- Reconnectez-vous à
http://localhostavecadmin/password. - Dans DVWA, allez dans "DVWA Security" et vérifiez que le niveau de sécurité est bien "Low".
- Lancez Burp Suite Community et ouvrez le navigateur intégré (Proxy > Intercept > Open browser).
- Naviguez sur
http://localhostvia le navigateur intégré et vérifiez que les requêtes apparaissent dans Proxy > HTTP history.
Partie 2 — Interception et Repeater
- Naviguez sur la page "SQL Injection" de DVWA et soumettez la valeur
1dans le champ User ID. - Dans HTTP history, trouvez cette requête et envoyez-la au Repeater.
- Dans le Repeater, testez les payloads suivants sur le paramètre
id:1' OR '1'='11' UNION SELECT user, password FROM users#
- Documentez les résultats : quelles données avez-vous pu extraire ?
- Naviguez sur la page "XSS (Reflected)" et soumettez votre prénom.
- Envoyez la requête au Repeater et remplacez le paramètre
namepar :<script>alert('XSS')</script>
- Le payload apparaît-il sans échappement dans la réponse HTML ?
Partie 3 — Intruder
- Envoyez la requête de login POST (trouvée lors de la connexion initiale) à l'Intruder.
- Configurez l'Intruder pour tester le paramètre
passwordavec la liste suivante :admin
password
123456
test
letmein
root - Lancez l'attaque et identifiez le mot de passe valide en observant les codes de réponse.
Partie 4 — Rapport
- Rédigez un court rapport (10 à 15 lignes) documentant :
- Les vulnérabilités trouvées (injection SQL, XSS)
- Les requêtes exactes utilisées pour les exploiter
- Les corrections recommandées
- La faille à corriger en priorité et la justification
Question de réflexion
Comparez votre expérience avec Burp Suite et celle avec OWASP ZAP (si vous avez fait le TP ZAP) : quels sont les avantages et inconvénients de chaque approche (automatique vs manuelle) ?
Une solution
Vous devez être connecté pour voir le contenu.