Introduction
Burp Suite est le standard de l'industrie pour les tests de pénétration web, utilisé par 90% des pentesters professionnels. En 2026, sa version Community gratuite suffit pour débutants : interception de requêtes HTTP/S, manipulation via Repeater, scanning passif et intrusif basique. Imaginez Burp comme un 'chirurgien' du trafic web : il capture chaque paquet, vous permettant de détecter injections SQL, XSS ou fuites de données avant qu'elles ne deviennent des vulnérabilités critiques.
Ce tutoriel de 15 minutes vous rend opérationnel : installation sous Linux/Mac/Windows, configuration proxy, génération du certificat CA pour HTTPS, premiers tests avec curl et navigateur. Pourquoi c'est crucial ? Une mauvaise config proxy cause 70% des échecs en pentest. À la fin, vous interceptrez du trafic réel comme un pro, prêt pour OWASP Top 10. Pas de jargon : chaque étape est actionable avec code copier-collable.
Prérequis
- Java 17+ (OpenJDK recommandé, Burp nécessite JRE 64-bit).
- Système : Linux (Ubuntu/Debian), macOS ou Windows 10+.
- Navigateur : Firefox ou Chrome (pour config proxy).
- Port 8080 libre (proxy par défaut).
- Connaissances basiques HTTP (GET/POST) – pas de pentest avancé requis.
- 4 Go RAM minimum pour fluidité.
Téléchargement et installation
#!/bin/bash
# Vérifier Java
java -version || { echo "Installez Java 17+ d'abord"; exit 1; }
# Télécharger Burp Suite Community (version stable 2026)
cd ~
mkdir -p burp
cd burp
wget https://portswigger.net/burp/releases/download?product=community&type=Linux -O burpsuite_community_v2026_x.x.sh
# Rendre exécutable et installer
chmod +x burpsuite_community_v2026_x.x.sh
./burpsuite_community_v2026_x.x.sh
# Lier au PATH (optionnel)
ln -s ~/burp/burpsuite /usr/local/bin/burpsuite
echo "Installation terminée. Lancez avec 'burpsuite'"Ce script bash complet vérifie Java, télécharge la dernière Community Edition (adaptez l'URL si besoin), l'installe et l'ajoute au PATH. Exécutez-le en sudo si permissions requises. Piège : sans Java 17+, Burp crash – le script le détecte tôt.
Premier lancement et interface
Lancez Burp avec burpsuite dans le terminal. L'interface s'ouvre : Proxy (interception), Target (scope), Repeater (modification), Intruder (fuzzing basique). Créez un projet temporaire : File > New project > Temporary project. Activez l'interception : Proxy > Intercept > On. Burp écoute sur 127.0.0.1:8080. Analogie : c'est votre 'filet' pour capturer tout trafic HTTP/S passant par ce proxy.
Lancement avec options avancées
#!/bin/bash
# Lancer Burp avec heap max 2GB et proxy visible
burpsuite \
-Xmx2g \
--proxy-chain=false \
--no-startup-wizard
# Alternative : avec config XML personnalisée
# burpsuite --config-file=~/burp-config.xmlCe script optimise le lancement : 2GB RAM pour éviter les OutOfMemory, désactive le proxy-chain (inutile en solo) et skip le wizard. Ajoutez --config-file pour charger une config XML. Piège : sans -Xmx, Burp freeze sur gros scans – toujours spécifier.
Configuration du proxy navigateur
Dans Firefox : Settings > Network Settings > Manual proxy : HTTP 127.0.0.1:8080, SOCKS non. Chrome : --proxy-server=127.0.0.1:8080. Testez sur httpbin.org/get : Burp intercepte ! Pour HTTPS, importez le CA Burp (Proxy > Options > Import / Export CA Certificate > DER > Save). Installez-le dans le navigateur : Firefox Authorities > Import.
Test du proxy avec curl
#!/bin/bash
# Test HTTP simple via proxy Burp
curl -x 127.0.0.1:8080 \
-k \
http://httpbin.org/get
# Test HTTPS (ignore cert pour test)
curl -x 127.0.0.1:8080 \
-k \
https://httpbin.org/json
# Avec headers custom (utile pour Repeater)
curl -x 127.0.0.1:8080 \
-H "X-Test: burp" \
-d '{"key":"value"}' \
https://httpbin.org/postCes commandes curl valident le proxy : traffic passe par Burp (visible en Intercept). -k ignore certs pour tests rapides. Ajoutez headers/data pour simuler POST. Piège : sans -x, curl bypass Burp – toujours tester avant navigateur.
Configuration Burp XML basique
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<config>
<component>
<name>core</name>
<config>
<project>
<temporaryProject>true</temporaryProject>
</project>
<startup>
<wizardCompleted>true</wizardCompleted>
</startup>
</config>
</component>
<component>
<name>proxy</name>
<config>
<tasks.intercept.interceptServerRequests>true</tasks.intercept.interceptServerRequests>
<http>
<listener>
<interface>127.0.0.1</interface>
<port>8080</port>
</listener>
</http>
</config>
</component>
<component>
<name>target</name>
<config>
<scope>
<include>
<url type="simple">http://httpbin.org/.*</url>
</include>
</scope>
</config>
</component>
</config>Ce fichier XML complet configure Burp : proxy sur 8080, interception ON, scope limité à httpbin.org (évite bruit). Chargez avec burpsuite --config-file=burp-config.xml. Piège : XML malformé crash Burp – validez avec éditeur XML avant.
Utilisation de Repeater et Logger
Intercept une requête (ex: httpbin.org/get), Forward pour la passer. Clic droit > Send to Repeater : modifiez et Send. Logger capture tout passif. Exemple concret : changez User-Agent en Repeater, resend – observez réponse serveur. Pour Intruder basique : Send to Intruder > Positions > Clear § Add sur un param, Start attack avec payload Sniper (alphabet). Résultat : test brute-force simple.
Génération et export CA Burp
#!/bin/bash
# Dans Burp : Proxy > Options > CA Certificate > Export > DER
# Puis convertir DER vers PEM (pour import)
openssl x509 -inform der -in ~/burp-cacert.der -out ~/burp-cacert.pem
# Vérifier le CA
echo "Contenu CA :"
openssl x509 -in ~/burp-cacert.pem -text -noout
# Ajouter à store système (Linux Ubuntu)
sudo cp ~/burp-cacert.pem /usr/local/share/ca-certificates/burp.crt
sudo update-ca-certificatesAprès export DER depuis Burp, ce script convertit en PEM, vérifie et l'ajoute aux CAs système (HTTPS fluide). Nécessaire pour éviter erreurs certs. Piège : oublier PEM cause 'cert invalid' en navigateur – toujours convertir.
Exemple requête HTTP pour Repeater
GET /get?param=§test§ HTTP/1.1
Host: httpbin.org
User-Agent: BurpSuite/2026
Accept: */*
X-Forwarded-For: 127.0.0.1
# Collez en Repeater, § pour Intruder payload
# Payloads : Intruder > Payloads > Simple list : alpha, numbersCopiez cette requête raw en Repeater : § marque position fuzzing. Ajoutez headers réalistes pour tests auth. Lancez Intruder pour brute-force param. Piège : sans double \n à la fin, Repeater parse mal – toujours terminer par blank line.
Bonnes pratiques
- Scope strict : Définissez Target > Scope pour filtrer bruit (ex: ^https?://target\.com/ ). Évite 10GB logs inutiles.
- Drop vs Forward : Drop pour bloquer malveillants, Forward pour observer.
- HTTPS only : Toujours installer CA avant prod – testez curl -k d'abord.
- Sauvegardez projet : File > Save project en .burp (inclut history).
- RAM tuning : -Xmx4g pour >100k requests.
Erreurs courantes à éviter
- Proxy non visible : Vérifiez
netstat -tlnp | grep 8080– kill process si conflit. - HTTPS bloque : CA non importé = 'Connection reset'. Convertissez PEM et update-ca.
- Mémoire épuisée : Logs explosent sans scope – limitez à 1h sessions.
- Interception infinie : Intercept off après test, ou loopback bypass (no-proxy-for localhost).
Pour aller plus loin
- Extensions gratuites : Logger++, Autorize (BApp Store > Extender > BApp Store).
- Tutoriel Pro : REST API pour automates.
- Certifications : PortSwigger Academy.
- Formations avancées : Learni Group - Pentest Web.
- Livre : The Web Application Hacker's Handbook.