CSP Bypass
hackingDéfinition
Le Content Security Policy (CSP) Bypass désigne les techniques permettant de contourner les politiques de sécurité de contenu mises en place pour prévenir les attaques XSS et les injections de données. Une CSP bien configurée spécifie les sources autorisées pour les scripts, styles, images et connexions réseau, limitant fortement l'impact d'une XSS. Les bypasses CSP permettent d'exploiter une XSS malgré une CSP en place.
Les faiblesses courantes des CSP incluent : les wildcard dans les sources (*.googleapis.com permet l'exécution de JSONP Google qui peut être exploité), l'autorisation de 'unsafe-inline' (permet l'exécution de scripts inline, neutralisant la protection XSS de la CSP), l'autorisation de 'unsafe-eval' (permet eval(), setTimeout avec string, Function constructor), les sources trop larges (CDNs hébergeant du code utilisateur comme jsdelivr.net, unpkg.com, codepen.io permettent l'injection de scripts via ces domaines autorisés), et les endpoints JSONP ou Angular dans les domaines autorisés.
Des techniques de bypass avancées incluent : JSONP bypass (trouver un endpoint JSONP sur un domaine autorisé dans la CSP, injecter le callback avec du code malveillant), DOM clobbering (utiliser des éléments HTML pour écraser des variables JavaScript et influencer la logique du code légitime), et l'exploitation d'applets obsolètes ou de SVG avec des scripts (si object-src n'est pas restreint).
L'outil CSP Evaluator (Google) analyse les politiques CSP et identifie les faiblesses. Des projets comme CSP-Bypass sur GitHub documentent les techniques connues par BYPASSE. La base de données de JSONP (jsonp.now) liste les endpoints JSONP connus sur des CDNs et services populaires.
Une CSP robuste nécessite : des nonces ou hashes pour les scripts inline légitimes (au lieu de unsafe-inline), des sources explicites et minimales, l'absence de unsafe-eval, une restriction de object-src à 'none', et default-src 'none' avec des directives explicites pour chaque type de ressource.
Fonctionnement
CSP : script-src https://accounts.google.com. Bypass JSONP Google : <script src='https://accounts.google.com/o/oauth2/revoke?callback=alert(1)'></script>. L'endpoint JSONP retourne callback({}) ce qui exécute alert(1) dans le contexte de la page, contournant la CSP car le script vient bien de accounts.google.com. La liste des endpoints JSONP exploitables sur des domaines populaires est maintenue dans plusieurs dépôts GitHub de bypass CSP.
Exploitation offensive
Un bypass CSP dans le contexte d'une XSS stockée ou réfléchie permet l'exploitation complète (vol de cookies, keylogging, exfiltration de données) malgré une CSP apparemment restrictive. La combinaison XSS + CSP bypass + exfiltration via connect-src large est le scénario d'attaque complet. Des plateformes de bug bounty récompensent spécifiquement les CSP bypasses car ils démontrent l'exploitabilité réelle d'une XSS.
Détection et mitigation
Google CSP Evaluator et l'outil csp-scanner.io permettent d'auditer les CSP. L'utilisation de nonces cryptographiquement aléatoires (générés par requête) pour les scripts inline légitimes est plus sécurisée que unsafe-inline. Éviter tous les CDNs qui hébergent du contenu utilisateur dans les sources autorisées. L'en-tête CSP Report-Only avec une URI de rapport permet de collecter les violations sans bloquer.
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h