From 8054289eb2734c937d130357c13d480ff352450a Mon Sep 17 00:00:00 2001 From: Translator Date: Tue, 19 Aug 2025 20:32:17 +0000 Subject: [PATCH] Translated ['src/pentesting-web/xss-cross-site-scripting/iframes-in-xss- --- .../iframes-in-xss-and-csp.md | 78 +++++++++++++++---- 1 file changed, 64 insertions(+), 14 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 733cb93d5..aba2d8cd1 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 @@ -45,7 +45,7 @@ var secret = "child secret" alert(parent.secret) ``` -Ikiwa utafungua html ya awali kupitia seva ya http (kama `python3 -m http.server`) utaona kwamba skripti zote zitatekelezwa (kama hakuna CSP inayozuia). **mzazi hataweza kufikia `secret` var ndani ya iframe yoyote** na **ni iframes if2 & if3 tu (ambazo zinachukuliwa kuwa za tovuti moja) zinaweza kufikia siri** katika dirisha la asili.\ +Ikiwa unapata html ya awali kupitia seva ya http (kama `python3 -m http.server`) utaona kwamba skripti zote zitatekelezwa (kama hakuna CSP inayozuia). **mzazi hataweza kufikia var `secret` ndani ya iframe yoyote** na **ni iframes if2 & if3 pekee (ambazo zinachukuliwa kuwa za tovuti moja) zinaweza kufikia siri** katika dirisha la asili.\ Tazama jinsi if4 inachukuliwa kuwa na asili `null`. ### Iframes na CSP @@ -61,7 +61,7 @@ Kwa hivyo inawezekana kupita CSP ya ukurasa kwa: +content="script-src 'sha256-iF/bMbiFXal+AAl9tF8N6+KagNWdMlnhLqWkjAocLsk'" /> " if __name__ == "__main__": app.run() ``` -### Payloads Nyingine Zilizopatikana Katika Mwitu +#### Mbinu mpya za CSP bypass (2023-2025) zikiwa na iframes + +Jamii ya utafiti inaendelea kugundua njia za ubunifu za kutumia iframes ili kushinda sera za kikomo. Hapa chini unaweza kupata mbinu zinazojulikana zaidi zilizochapishwa katika miaka michache iliyopita: + +* **Dangling-markup / named-iframe data-exfiltration (PortSwigger 2023)** – Wakati programu inareflect HTML lakini CSP kali inazuia utekelezaji wa script, bado unaweza kuvuja tokens nyeti kwa kuingiza *dangling* ` + + ``` -### Credentialless iframes +### Iframes zisizo na akreditivu -Kama ilivyoelezwa katika [this article](https://blog.slonser.info/posts/make-self-xss-great-again/), bendera ya `credentialless` katika iframe inatumika kupakia ukurasa ndani ya iframe bila kutuma akidi katika ombi huku ikihifadhi sera ya asili sawa (SOP) ya ukurasa ulio pakwa ndani ya iframe. +Kama ilivyoelezwa katika [hiki kifungu](https://blog.slonser.info/posts/make-self-xss-great-again/), bendera `credentialless` katika iframe inatumika kupakia ukurasa ndani ya iframe bila kutuma akreditivu katika ombi huku ikihifadhi sera ya asili sawa (SOP) ya ukurasa ulio pakuliwa ndani ya iframe. -Hii inaruhusu iframe kufikia taarifa nyeti kutoka iframe nyingine katika SOP sawa iliyopakiwa kwenye ukurasa wa mzazi: +Tangu **Chrome 110 (Februari 2023 kipengele hiki kimewezeshwa kwa default** na kiwango kinastandariswa kati ya vivinjari chini ya jina *anonymous iframe*. MDN inaelezea kama: “mekanismu ya kupakia iframes za wahusika wengine katika sehemu mpya ya kuhifadhi ya muda ili kwamba hakuna vidakuzi, localStorage au IndexedDB vinavyoshirikiwa na asili halisi”. Matokeo kwa washambuliaji na walinzi: + +* Skripti katika iframes tofauti zisizo na akreditivu **bado zinashiriki asili ya kiwango cha juu** na zinaweza kuingiliana kwa uhuru kupitia DOM, kufanya mashambulizi ya multi-iframe self-XSS kuwa yawezekana (tazama PoC hapa chini). +* Kwa sababu mtandao ni **credential-stripped**, ombi lolote ndani ya iframe linatenda kama kikao kisichothibitishwa – maeneo yaliyolindwa na CSRF kwa kawaida yanashindwa, lakini kurasa za umma zinazoweza kuvuja kupitia DOM bado ziko ndani ya wigo. +* Pop-ups zinazozalishwa kutoka iframe isiyo na akreditivu hupata `rel="noopener"` isiyo ya moja kwa moja, ikivunja baadhi ya mchakato wa OAuth. ```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 ``` - Mfano wa unyakuzi: Self-XSS + CSRF @@ -165,7 +209,7 @@ document.forms[0].submit(); - Iframe nyingine ambayo kwa kweli ina mtumiaji aliyeingia (bila bendera ya `credentialless`). -Kisha, kutoka kwenye XSS inawezekana kufikia iframe nyingine kwani zina SOP sawa na kuiba kidaku kwa mfano kwa kutekeleza: +Kisha, kutoka kwenye XSS inawezekana kufikia iframe nyingine kwani zina SOP sawa na kuiba cookie kwa mfano kwa kutekeleza: ```javascript alert(window.top[1].document.cookie); ``` @@ -201,4 +245,10 @@ Angalia kurasa zifuatazo: ../postmessage-vulnerabilities/steal-postmessage-modifying-iframe-location.md {{#endref}} + + +## Marejeo + +* [PortSwigger Research – Kutumia hijacking ya fomu kupita CSP (Machi 2024)](https://portswigger.net/research/using-form-hijacking-to-bypass-csp) +* [Chrome Developers – Iframe bila akreditivu: Rahisi kuingiza iframes katika mazingira ya COEP (Feb 2023)](https://developer.chrome.com/blog/iframe-credentialless) {{#include ../../banners/hacktricks-training.md}}