mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/pentesting-web/clickjacking.md'] to de
This commit is contained in:
parent
6d86ecc406
commit
0d6546efe9
@ -12,10 +12,10 @@ Manchmal ist es möglich, den **Wert von Feldern eines Formulars mit GET-Paramet
|
||||
|
||||
### Formular mit Drag\&Drop ausfüllen
|
||||
|
||||
Wenn Sie möchten, dass der Benutzer ein **Formular ausfüllt**, aber ihn nicht direkt bitten möchten, bestimmte Informationen (wie die E-Mail-Adresse oder ein spezifisches Passwort, das Sie kennen) einzugeben, können Sie ihn einfach bitten, etwas zu **Drag\&Drop** zu ziehen, das Ihre kontrollierten Daten eingibt, wie in [**diesem Beispiel**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/).
|
||||
Wenn Sie möchten, dass der Benutzer ein **Formular ausfüllt**, ihn jedoch nicht direkt bitten möchten, bestimmte Informationen (wie die E-Mail-Adresse oder ein spezifisches Passwort, das Sie kennen) einzugeben, können Sie ihn einfach bitten, etwas zu **Drag\&Drop**, das Ihre kontrollierten Daten eingibt, wie in [**diesem Beispiel**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/).
|
||||
|
||||
### Grundlegende Nutzlast
|
||||
```markup
|
||||
```css
|
||||
<style>
|
||||
iframe {
|
||||
position:relative;
|
||||
@ -35,7 +35,7 @@ z-index: 1;
|
||||
<iframe src="https://vulnerable.com/email?email=asd@asd.asd"></iframe>
|
||||
```
|
||||
### Multistep Payload
|
||||
```markup
|
||||
```css
|
||||
<style>
|
||||
iframe {
|
||||
position:relative;
|
||||
@ -59,7 +59,7 @@ left:210px;
|
||||
<iframe src="https://vulnerable.net/account"></iframe>
|
||||
```
|
||||
### Drag\&Drop + Click-Payload
|
||||
```markup
|
||||
```css
|
||||
<html>
|
||||
<head>
|
||||
<style>
|
||||
@ -89,18 +89,27 @@ background: #F00;
|
||||
```
|
||||
### 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 dies ausnutzen, um den Benutzer zu täuschen, damit er auf die Schaltfläche/den Link klickt.\
|
||||
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 dies ausnutzen, um den Benutzer zu täuschen, damit er auf die Schaltfläche/den Link klickt.\
|
||||
Beispiel:\
|
||||
Sie haben einen **self XSS** in einigen privaten Details des Kontos gefunden (Details, die **nur Sie festlegen und lesen können**). Die Seite mit dem **Formular**, um diese Details festzulegen, ist **anfällig** für **Clickjacking** und Sie können das **Formular** mit den GET-Parametern **vorbefüllen**.\
|
||||
Ein Angreifer könnte einen **Clickjacking**-Angriff auf diese Seite vorbereiten, indem er das **Formular** mit der **XSS-Nutzlast** **vorbefüllt** und den **Benutzer** dazu bringt, das Formular zu **übermitteln**. Wenn das **Formular übermittelt wird** und die Werte geändert werden, wird der **Benutzer den XSS ausführen**.
|
||||
|
||||
### DoubleClickjacking
|
||||
|
||||
Zunächst [in diesem Beitrag erklärt](https://securityaffairs.com/172572/hacking/doubleclickjacking-clickjacking-on-major-websites.html), würde diese Technik das Opfer auffordern, doppelt auf eine Schaltfläche einer benutzerdefinierten Seite zu klicken, die an einem bestimmten Ort platziert ist, und die Zeitunterschiede zwischen mousedown- und onclick-Ereignissen zu nutzen, um die Opferseite während des Doppelklicks zu laden, sodass der **Opfer tatsächlich auf eine legitime Schaltfläche auf der Opferseite klickt**.
|
||||
|
||||
Ein Beispiel ist in diesem Video zu sehen: [https://www.youtube.com/watch?v=4rGvRRMrD18](https://www.youtube.com/watch?v=4rGvRRMrD18)
|
||||
|
||||
> [!WARNING]
|
||||
> Diese Technik ermöglicht es, den Benutzer zu täuschen, sodass er an 1 Stelle auf der Opferseite klickt und dabei jeden Schutz gegen Clickjacking umgeht. Der Angreifer muss also **sensible Aktionen finden, die mit nur 1 Klick durchgeführt werden können, wie OAuth-Aufforderungen zur Genehmigung von Berechtigungen**.
|
||||
|
||||
## Strategien zur Minderung von Clickjacking
|
||||
|
||||
### Client-seitige Abwehrmaßnahmen
|
||||
### Client-Seitige Abwehrmaßnahmen
|
||||
|
||||
Skripte, die auf der Client-Seite ausgeführt werden, können Maßnahmen ergreifen, um Clickjacking zu verhindern:
|
||||
|
||||
- Sicherstellen, dass das Anwendungsfenster das Haupt- oder oberste Fenster ist.
|
||||
- Sicherstellen, dass das Anwendungsfenster das Haupt- oder Top-Fenster ist.
|
||||
- Alle Frames sichtbar machen.
|
||||
- Klicks auf unsichtbare Frames verhindern.
|
||||
- Benutzer über potenzielle Clickjacking-Versuche informieren und warnen.
|
||||
@ -108,7 +117,7 @@ Skripte, die auf der Client-Seite ausgeführt werden, können Maßnahmen ergreif
|
||||
Diese Frame-Busting-Skripte können jedoch umgangen werden:
|
||||
|
||||
- **Sicherheitseinstellungen der Browser:** Einige Browser könnten diese Skripte basierend auf ihren Sicherheitseinstellungen oder mangelnder JavaScript-Unterstützung blockieren.
|
||||
- **HTML5 iframe `sandbox` Attribut:** Ein Angreifer kann Frame-Buster-Skripte neutralisieren, indem er das `sandbox`-Attribut mit den Werten `allow-forms` oder `allow-scripts` ohne `allow-top-navigation` festlegt. Dies verhindert, dass das iframe überprüft, ob es das oberste Fenster ist, z.B.,
|
||||
- **HTML5 iframe `sandbox` Attribut:** Ein Angreifer kann Frame-Buster-Skripte neutralisieren, indem er das `sandbox`-Attribut mit `allow-forms` oder `allow-scripts` Werten ohne `allow-top-navigation` festlegt. Dies verhindert, dass das iframe überprüft, ob es das Top-Fenster ist, z.B.,
|
||||
```html
|
||||
<iframe
|
||||
id="victim_website"
|
||||
@ -121,7 +130,7 @@ Die `allow-forms` und `allow-scripts` Werte ermöglichen Aktionen innerhalb des
|
||||
|
||||
#### X-Frame-Options
|
||||
|
||||
Der **`X-Frame-Options` HTTP-Antwortheader** informiert Browser über die Legitimität, eine Seite in einem `<frame>` oder `<iframe>` darzustellen, und hilft, Clickjacking zu verhindern:
|
||||
Der **`X-Frame-Options` HTTP-Antwortheader** informiert Browser über die Legitimität der Darstellung einer Seite in einem `<frame>` oder `<iframe>`, um Clickjacking zu verhindern:
|
||||
|
||||
- `X-Frame-Options: deny` - Keine Domain kann den Inhalt einrahmen.
|
||||
- `X-Frame-Options: sameorigin` - Nur die aktuelle Seite kann den Inhalt einrahmen.
|
||||
@ -140,7 +149,7 @@ Zum Beispiel erlaubt die folgende CSP nur das Einrahmen von derselben Domain:
|
||||
|
||||
`Content-Security-Policy: frame-ancestors 'self';`
|
||||
|
||||
Weitere Details und komplexe Beispiele finden Sie in der [frame-ancestors CSP-Dokumentation](https://w3c.github.io/webappsec-csp/document/#directive-frame-ancestors) und in der [CSP frame-ancestors-Dokumentation von Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors).
|
||||
Weitere Details und komplexe Beispiele finden Sie in der [frame-ancestors CSP-Dokumentation](https://w3c.github.io/webappsec-csp/document/#directive-frame-ancestors) und in der [CSP frame-ancestors Dokumentation von Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors).
|
||||
|
||||
### Content Security Policy (CSP) mit `child-src` und `frame-src`
|
||||
|
||||
@ -157,7 +166,7 @@ Diese Richtlinie erlaubt Frames von derselben Herkunft (self) und https://truste
|
||||
|
||||
#### `child-src` Direktive
|
||||
|
||||
- Eingeführt in CSP Level 2, um gültige Quellen für Web-Worker und Frames festzulegen.
|
||||
- Wurde in CSP Level 2 eingeführt, um gültige Quellen für Web-Worker und Frames festzulegen.
|
||||
- Dient als Fallback für frame-src und worker-src.
|
||||
```
|
||||
Content-Security-Policy: child-src 'self' https://trusted-website.com;
|
||||
@ -168,7 +177,7 @@ Diese Richtlinie erlaubt Frames und Worker von derselben Herkunft (self) und htt
|
||||
|
||||
- Abwertung: child-src wird zugunsten von frame-src und worker-src schrittweise eingestellt.
|
||||
- Fallback-Verhalten: Wenn frame-src fehlt, wird child-src als Fallback für Frames verwendet. Wenn beide fehlen, wird default-src verwendet.
|
||||
- Strikte Quelldefinition: Nur vertrauenswürdige Quellen in den Direktiven einbeziehen, um Ausnutzung zu verhindern.
|
||||
- Strikte Quelldefinition: Nur vertrauenswürdige Quellen in den Direktiven einfügen, um Ausnutzung zu verhindern.
|
||||
|
||||
#### JavaScript Frame-Breaking Scripts
|
||||
|
||||
@ -180,7 +189,7 @@ top.location = self.location
|
||||
```
|
||||
#### 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 Clickjacked-Seite vorgenommen werden.
|
||||
- **Token-Validierung:** Verwenden Sie Anti-CSRF-Token in Webanwendungen, um sicherzustellen, dass zustandsverändernde Anfragen absichtlich vom Benutzer und nicht über eine Clickjacked-Seite vorgenommen werden.
|
||||
|
||||
## Referenzen
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user