Skip to content
Learni
Voir tous les tutoriels
Sécurité Offensive

Comment configurer Burp Suite pour pentest en 2026

Read in English

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

install-burp.sh
#!/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.sh

Ce 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.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

csrf-macro.xml
<?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&amp;password=password&amp;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

sqli-payloads.txt
§' 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)

simple-logger.py
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é

burp-scan.sh
#!/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.xml

Utilisez 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://burp pour 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 jvisualvm et 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.
Ce tutoriel fait ~2200 mots ; relisez pour vos audits 2026 !