From e3456a694d8f1a381eb204c7cca8313237ad6fe9 Mon Sep 17 00:00:00 2001 From: Translator Date: Tue, 19 Aug 2025 20:33:36 +0000 Subject: [PATCH] Translated ['src/pentesting-web/xss-cross-site-scripting/iframes-in-xss- --- .../iframes-in-xss-and-csp.md | 64 +++++++++++++++++-- 1 file changed, 57 insertions(+), 7 deletions(-) diff --git a/src/pentesting-web/xss-cross-site-scripting/iframes-in-xss-and-csp.md b/src/pentesting-web/xss-cross-site-scripting/iframes-in-xss-and-csp.md index 55827e941..75e6c0488 100644 --- a/src/pentesting-web/xss-cross-site-scripting/iframes-in-xss-and-csp.md +++ b/src/pentesting-web/xss-cross-site-scripting/iframes-in-xss-and-csp.md @@ -61,7 +61,7 @@ Daher ist es möglich, die CSP einer Seite mit zu umgehen: +content="script-src 'sha256-iF/bMbiFXal+AAl9tF8N6+KagNWdMlnhLqWkjAocLsk'" /> " if __name__ == "__main__": app.run() ``` -### Andere Payloads, die in der Wildnis gefunden wurden +#### Neue (2023-2025) CSP-Bypass-Techniken mit Iframes + +Die Forschungsgemeinschaft entdeckt weiterhin kreative Möglichkeiten, um Iframes auszunutzen und restriktive Richtlinien zu umgehen. Im Folgenden finden Sie die bemerkenswertesten Techniken, die in den letzten Jahren veröffentlicht wurden: + +* **Dangling-markup / named-iframe Datenexfiltration (PortSwigger 2023)** – Wenn eine Anwendung HTML reflektiert, aber eine starke CSP die Ausführung von Skripten blockiert, können Sie dennoch sensible Tokens durch das Injizieren eines *dangling* ` + + ``` ### Credentialless iframes Wie in [diesem Artikel](https://blog.slonser.info/posts/make-self-xss-great-again/) erklärt, wird das `credentialless`-Flag in einem iframe verwendet, um eine Seite innerhalb eines iframes zu laden, ohne Anmeldeinformationen in der Anfrage zu senden, während die Same-Origin-Policy (SOP) der geladenen Seite im iframe beibehalten wird. -Dies ermöglicht es dem iframe, auf sensible Informationen von einem anderen iframe im gleichen SOP zuzugreifen, das auf der übergeordneten Seite geladen ist: +Seit **Chrome 110 (Februar 2023) ist die Funktion standardmäßig aktiviert** und die Spezifikation wird unter dem Namen *anonymer iframe* browserübergreifend standardisiert. MDN beschreibt es als: „ein Mechanismus, um Drittanbieter-iframes in einer brandneuen, flüchtigen Speicherpartition zu laden, sodass keine Cookies, localStorage oder IndexedDB mit dem echten Ursprung geteilt werden“. Konsequenzen für Angreifer und Verteidiger: + +* Skripte in verschiedenen credentialless iframes **teilen sich weiterhin den gleichen Top-Level-Ursprung** und können über das DOM frei interagieren, was mehrfache iframe self-XSS-Angriffe möglich macht (siehe PoC unten). +* Da das Netzwerk **credential-stripped** ist, verhält sich jede Anfrage innerhalb des iframes effektiv wie eine nicht authentifizierte Sitzung – CSRF-geschützte Endpunkte schlagen normalerweise fehl, aber öffentliche Seiten, die über das DOM auslesbar sind, sind weiterhin im Geltungsbereich. +* Pop-ups, die aus einem credentialless iframe erzeugt werden, erhalten ein implizites `rel="noopener"`, was einige OAuth-Flows unterbricht. ```javascript -window.top[1].document.body.innerHTML = 'Hi from credentialless'; -alert(window.top[1].document.cookie); +// PoC: two same-origin credentialless iframes stealing cookies set by a third +window.top[1].document.cookie = 'foo=bar'; // write +alert(window.top[2].document.cookie); // read -> foo=bar ``` - Exploit-Beispiel: Self-XSS + CSRF @@ -201,4 +245,10 @@ fetchLater(req,{activateAfter: timeout}) ../postmessage-vulnerabilities/steal-postmessage-modifying-iframe-location.md {{#endref}} + + +## References + +* [PortSwigger Research – Using form hijacking to bypass CSP (März 2024)](https://portswigger.net/research/using-form-hijacking-to-bypass-csp) +* [Chrome Developers – Iframe credentialless: Easily embed iframes in COEP environments (Feb 2023)](https://developer.chrome.com/blog/iframe-credentialless) {{#include ../../banners/hacktricks-training.md}}