Votre appli Laravel a des sourcemaps en prod. Et personne n’a regardé.
ump — Un mot de passe pourri recent 2026-03-17 · Voir sur Substack ↗
Un audit Laravel "propre" selon le client. Burp passé, endpoints testés. Mais 219 sourcemaps React en prod, accessibles à tous. L'équipe testait les requêtes. Personne n'avait lu le code que le serveur servait. https://unmotdepassepourri.substack.com/p/votre-appli-laravel-a-des-sourcemaps
1/ Audit d'un SaaS Laravel+React. L'équipe avait déjà passé Burp : "C'est bon, on a vérifié les endpoints." Problème : ils testaient ce qu'ils connaissaient. Ils n'avaient jamais cartographié ce que le navigateur recevait réellement.
2/ Une SPA React buildée en prod génère des bundles JS minifiés. Dedans : tous les appels API, les routes, les rôles, la logique métier. C'est obfusqué, pas chiffré. Et souvent accompagné de fichiers .map qui reconstituent le code source original.
3/ Ma méthodo : Katana pour crawler → téléchargement JS → recherche sourcemaps → analyse statique. Sur cette cible : 219 fichiers .map accessibles publiquement. Aucune restriction. Le build Vite les générait par défaut, personne ne les avait désactivés.
4/ Résultat : code source React complet, avec noms de variables, commentaires dev, structure projet. Cartographie exhaustive de l'API backend, incluant endpoints jamais exposés dans l'UI. Des routes admin cachées, des flags de features, des TODOs embarrassants.
5/ L'équipe avait testé ce que l'application *montrait*. Pas ce qu'elle *livraient*. Burp voit les requêtes que vous faites. L'analyse JS lit le manuel complet que le serveur envoie à chaque visiteur.
6/ Le grey-box, ce n'est pas juste "un compte légitime + Burp". C'est aussi : lire le JS reçu, analyser les sourcemaps, reconstruire la surface d'attaque côté client. Tester sans cartographier, c'est chercher à l'aveugle.
7/ Correctif : vite.json → sourcemap: false en prod. Vérif nginx : deny .map. Simple. Mais ça suppose qu'on ait pensé à regarder. La plupart des équipes ne le font jamais.
8/ L'audit Burp, c'est le minimum. L'analyse JavaScript sourcemaps, c'est ce qui différencie un test d'intrusion d'un fuzzing automatisé. Article complet : https://unmotdepassepourri.substack.com/p/votre-appli-laravel-a-des-sourcemaps
L'équipe avait passé Burp sur leur SaaS Laravel. Trouvé et corrigé des trucs. Sauf qu'ils testaient les requêtes, pas le code livré au navigateur. 219 sourcemaps React en prod, code source complet accessible. Personne n'avait regardé ce que le serveur servait vraiment.
Vous testez vos endpoints avec Burp. Bien. Mais avez-vous déjà téléchargé vos bundles JS de prod et cherché les .map ? Parce que le code source complet de votre SPA React est peut-être public, avec commentaires dev et routes admin cachées. Vite le génère par défaut.
Si ton audit "grey-box" se résume à Burp + fuzzing d'endpoints, t'es juste un script kiddie avec une licence ZAP. Les vrais trous, ils sont dans les 200+ sourcemaps React que ton build Vite sert en prod depuis 18 mois. Mais t'as jamais regardé, hein ?