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 6c1aa53de..aae7b7998 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 @@ -6,7 +6,7 @@ Iframe'li bir sayfanın içeriğini belirtmenin 3 yolu vardır: -- Bir URL belirten `src` aracılığıyla (URL, farklı kökenli veya aynı kökenli olabilir) +- Bir URL belirten `src` aracılığıyla (URL, çapraz köken veya aynı köken olabilir) - `data:` protokolünü kullanarak içeriği belirten `src` aracılığıyla - İçeriği belirten `srcdoc` aracılığıyla @@ -46,22 +46,22 @@ alert(parent.secret) ``` Eğer önceki html'ye bir http sunucusu (örneğin `python3 -m http.server`) aracılığıyla erişirseniz, tüm scriptlerin çalıştırılacağını göreceksiniz (çünkü bunu engelleyen bir CSP yok). **Ana sayfa, herhangi bir iframe içindeki `secret` değişkenine erişemeyecek** ve **sadece if2 ve if3 iframe'leri (aynı site olarak kabul edilenler) orijinal penceredeki secret'a erişebilir**.\ -if4'ün `null` kökenine sahip olduğu dikkate alın. +if4'ün `null` kökenine sahip olduğu not edilmelidir. ### CSP ile Iframe'ler > [!TIP] -> Lütfen, aşağıdaki bypass'larda iframed sayfaya verilen yanıtın JS yürütümünü engelleyen herhangi bir CSP başlığı içermediğine dikkat edin. +> Lütfen, aşağıdaki bypass'lerde iframe'li sayfaya yanıtın JS çalıştırılmasını engelleyen herhangi bir CSP başlığı içermediğine dikkat edin. -`script-src`'nin `self` değeri, `data:` protokolü veya `srcdoc` niteliği kullanarak JS kodunun yürütülmesine izin vermeyecektir.\ -Ancak, CSP'nin `none` değeri bile, `src` niteliğinde bir URL (tam veya sadece yol) koyan iframe'lerin yürütülmesine izin verecektir.\ +`script-src`'nin `self` değeri, `data:` protokolü veya `srcdoc` niteliği kullanarak JS kodunun çalıştırılmasına izin vermeyecektir.\ +Ancak, CSP'nin `none` değeri bile, `src` niteliğinde bir URL (tam veya sadece yol) koyan iframe'lerin çalıştırılmasına izin verecektir.\ Bu nedenle, bir sayfanın CSP'sini aşmak mümkündür: ```html
+content="script-src 'sha256-iF/bMbiFXal+AAl9tF8N6+KagNWdMlnhLqWkjAocLsk'" /> " if __name__ == "__main__": app.run() ``` -### Diğer Yükler doğada bulundu +#### Yeni (2023-2025) CSP atlatma teknikleri ile iframeler + +Araştırma topluluğu, kısıtlayıcı politikaları aşmak için iframeleri kötüye kullanmanın yaratıcı yollarını keşfetmeye devam ediyor. Aşağıda son birkaç yıl içinde yayımlanan en dikkat çekici teknikleri bulabilirsiniz: + +* **Dangling-markup / named-iframe veri sızıntısı (PortSwigger 2023)** – Bir uygulama HTML'yi yansıttığında ancak güçlü bir CSP script yürütümünü engellediğinde, *dangling* `