Clickjacking
Verwenden Sie Trickest, um einfach Workflows zu erstellen und zu automatisieren, die von den weltweit fortschrittlichsten Community-Tools unterstützt werden. Heute Zugriff erhalten:
Was ist Clickjacking
Bei einem Clickjacking-Angriff wird ein Benutzer dazu getäuscht, auf ein Element auf einer Webseite zu klicken, das entweder unsichtbar ist oder als anderes Element getarnt ist. Diese Manipulation kann zu unbeabsichtigten Folgen für den Benutzer führen, wie dem Herunterladen von Malware, der Weiterleitung zu bösartigen Webseiten, der Bereitstellung von Anmeldeinformationen oder sensiblen Informationen, Geldtransfers oder dem Online-Kauf von Produkten.
Trick zum Vorabfüllen von Formularen
Manchmal ist es möglich, den Wert von Feldern eines Formulars mithilfe von GET-Parametern beim Laden einer Seite zu füllen. Ein Angreifer kann dieses Verhalten ausnutzen, um ein Formular mit beliebigen Daten auszufüllen und das Clickjacking-Payload zu senden, damit der Benutzer die Schaltfläche "Senden" drückt.
Formular mit Drag&Drop ausfüllen
Wenn Sie möchten, dass der Benutzer ein Formular ausfüllt, aber ihn nicht direkt auffordern möchten, bestimmte Informationen einzugeben (wie die E-Mail und/oder ein spezifisches Passwort, das Sie kennen), können Sie ihn einfach bitten, etwas per Drag&Drop zu verschieben, das Ihre gesteuerten Daten schreibt, wie in diesem Beispiel.
Grundlegendes Payload
Mehrstufige Payload
Drag&Drop + Klick Payload
XSS + Clickjacking
Wenn Sie einen XSS-Angriff identifiziert haben, der erfordert, dass ein Benutzer auf ein Element klickt, um den XSS auszulösen, und die Seite anfällig für Clickjacking ist, könnten Sie es missbrauchen, um den Benutzer dazu zu bringen, auf die Schaltfläche/den Link zu klicken. Beispiel: Sie haben ein Self-XSS in einigen privaten Details des Kontos gefunden (Details, die nur Sie setzen und lesen können). Die Seite mit dem Formular zum Einstellen dieser Details ist anfällig für Clickjacking, und Sie können das Formular mit den GET-Parametern vorab ausfüllen. __Ein Angreifer könnte einen Clickjacking-Angriff auf diese Seite vorbereiten, das Formular mit dem XSS-Payload vorab ausfüllen und den **Benutzer dazu bringen, das Formular zu übermitteln. Wenn das Formular übermittelt wird und die Werte geändert werden, wird der Benutzer den XSS ausführen.
Strategien zur Minderung von Clickjacking
Abwehrmaßnahmen auf Clientseite
Skripte, die auf der Clientseite ausgeführt werden, können Aktionen ausführen, um Clickjacking zu verhindern:
Sicherstellen, dass das Anwendungsfenster das Haupt- oder oberste Fenster ist.
Alle Frames sichtbar machen.
Klicken auf unsichtbare Frames verhindern.
Erkennen und Benutzer über mögliche Clickjacking-Versuche informieren.
Diese Frame-Busting-Skripte können jedoch umgangen werden:
Sicherheitseinstellungen der Browser: Einige Browser können diese Skripte basierend auf ihren Sicherheitseinstellungen oder dem Fehlen von JavaScript-Unterstützung blockieren.
HTML5 iframe
sandbox
-Attribut: Ein Angreifer kann Frame-Buster-Skripte neutralisieren, indem er dassandbox
-Attribut mit den Wertenallow-forms
oderallow-scripts
ohneallow-top-navigation
setzt. Dadurch wird verhindert, dass das iframe überprüft, ob es das oberste Fenster ist, z. B.
Die Werte allow-forms
und allow-scripts
ermöglichen Aktionen innerhalb des Iframes und deaktivieren die Navigation auf Top-Level. Um die beabsichtigte Funktionalität der angegriffenen Website sicherzustellen, können zusätzliche Berechtigungen wie allow-same-origin
und allow-modals
je nach Angriffstyp erforderlich sein. Browser-Konsolenmeldungen können dabei helfen, welche Berechtigungen zuzulassen sind.
Serverseitige Abwehrmaßnahmen
X-Frame-Options
Der HTTP-Antwortheader X-Frame-Options
informiert Browser über die Legitimität des Renderns einer Seite in einem <frame>
oder <iframe>
, um Clickjacking zu verhindern:
X-Frame-Options: deny
- Keine Domain kann den Inhalt rahmen.X-Frame-Options: sameorigin
- Nur die aktuelle Website kann den Inhalt rahmen.X-Frame-Options: allow-from https://trusted.com
- Nur die angegebene 'uri' kann die Seite rahmen.Beachten Sie die Einschränkungen: Wenn der Browser diese Direktive nicht unterstützt, funktioniert sie möglicherweise nicht. Einige Browser bevorzugen die CSP frame-ancestors Direktive.
Content Security Policy (CSP) frame-ancestors Direktive
Die frame-ancestors
Direktive in CSP ist die empfohlene Methode zum Schutz vor Clickjacking:
frame-ancestors 'none'
- Ähnlich wieX-Frame-Options: deny
.frame-ancestors 'self'
- Ähnlich wieX-Frame-Options: sameorigin
.frame-ancestors trusted.com
- Ähnlich wieX-Frame-Options: allow-from
.
Beispielsweise erlaubt die folgende CSP nur das Einbetten von der gleichen Domain:
Content-Security-Policy: frame-ancestors 'self';
Weitere Details und komplexe Beispiele finden Sie in der frame-ancestors CSP-Dokumentation und in der Mozilla CSP frame-ancestors Dokumentation.
Content Security Policy (CSP) mit child-src
und frame-src
child-src
und frame-src
Content Security Policy (CSP) ist eine Sicherheitsmaßnahme, die hilft, Clickjacking und andere Code-Injektionsangriffe zu verhindern, indem festgelegt wird, welche Quellen der Browser zum Laden von Inhalten zulassen soll.
frame-src
Direktive
frame-src
DirektiveDefiniert gültige Quellen für Frames.
Spezifischer als die
default-src
Direktive.
Diese Richtlinie erlaubt Frames aus der gleichen Quelle (self) und https://trusted-website.com.
child-src
Direktive
child-src
DirektiveWurde in CSP Level 2 eingeführt, um gültige Quellen für Web Workers und Frames festzulegen.
Dient als Fallback für frame-src und worker-src.
Diese Richtlinie erlaubt Frames und Worker aus der gleichen Quelle (self) und https://trusted-website.com.
Verwendungshinweise:
Veraltung: child-src wird zugunsten von frame-src und worker-src abgeschafft.
Fallback-Verhalten: Wenn frame-src fehlt, wird child-src als Fallback für Frames verwendet. Wenn beide fehlen, wird default-src verwendet.
Strikte Quellendefinition: Fügen Sie nur vertrauenswürdige Quellen in die Direktiven ein, um Ausnutzungen zu verhindern.
JavaScript Frame-Breaking Scripts
Obwohl nicht vollständig narrensicher, können JavaScript-basierte frame-busting Skripte verwendet werden, um zu verhindern, dass eine Webseite eingerahmt wird. Beispiel:
Verwendung von Anti-CSRF-Token
Token-Validierung: Verwenden Sie Anti-CSRF-Token in Webanwendungen, um sicherzustellen, dass zustandsändernde Anfragen absichtlich vom Benutzer und nicht über eine Clickjacking-Seite erfolgen.
Referenzen
Verwenden Sie Trickest, um einfach Workflows zu erstellen und zu automatisieren, die von den weltweit fortschrittlichsten Community-Tools unterstützt werden. Heute Zugriff erhalten:
Last updated