Skip to content

Content Security Policy (CSP)

Die CSP schränkt den Zugriff auf bestimmte Quellen ein.
Dabei wird auch definiert, welche Skripte ausgeführt werden dürfen.

CSP Direktiven

  • style-src: Erlaubte Quellen für stylesheets
  • img-src: Erlaubte Quellen für Bilder
  • object-src: Erlaubte Quellen für Objekte wie <object> oder <embed>
  • connect-src: Erlaubte Quellen für HTTP Anfragen aus Skripten. Beispielsweise von XMLHttpRequest
  • default-src: Standard, falls eine Direktive nicht gesetzt ist
  • frame-ancestors: Erlaubte Quellen diese Seite einzubetten
  • form-action: Erlaubte Quellen für Formular übermittlungen

CSP Werte

  • *: Alle Quellen Erlaubt
  • 'none': Keine Quellen Erlaubt
  • *.benignsite.htb: Alle Subdomains von benignsite.htb sind erlaubt
  • unsafe-inline: Alle inline Elemente Erlaubt
  • unsafe-eval: Erlaube dynamische Code Ausführung wie Javascripts eval Funktion
  • sha256-407e1bf4a1472948aa7b15cafa752fcf8e90710833da8a59dd8ef8e7fe56f22d: Erlaubt ein Element mit bestimmten hash
  • nonce-S0meR4nd0mN0nC3: Erlaubt ein Element mit bestimmten Nonce

Umgehen der SOP mit JSONP

JSONP kann genutzt werden um SOPS zu umgehen. Dafür muss ein für skripts erlaubter Endpunkt JSONP unterstützen. Da JSONP Endpunkte es erlauben Funktionen zu definieren, ist es möglich dynamisch Javascript zu definieren, welcher vom JSONP Endpunkt zurückgegeben wird.

<script src="https://accounts.google.com/o/oauth2/revoke?callback=alert(1);"></script>
Weitere Endpunkte um die CSP zu umgehen

Umgehen der script-src 'self' Direktive

Kann der Benutzer Dateien Uploaden, ist es ihm möglich diese Auszuführen, sofern diese Direktive gesetzt ist. Dafür muss dann im Skript die Quelle als relativer Pfad angegeben werden.