Iframes in XSS, CSP and SOP
Last updated
Last updated
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Kuna njia 3 za kuonyesha maudhui ya ukurasa ulio katika iframe:
Kupitia src
ikionyesha URL (URL inaweza kuwa ya asili tofauti au ya asili sawa)
Kupitia src
ikionyesha maudhui kwa kutumia itifaki ya data:
Kupitia srcdoc
ikionyesha maudhui
Kufikia Parent & Child vars
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 secret
var ndani ya iframe yoyote na ni iframes if2 & if3 pekee (ambazo zinachukuliwa kuwa kwenye tovuti moja) zinaweza kufikia siri katika dirisha la asili.
Tazama jinsi if4 inachukuliwa kuwa na asili null
.
Tafadhali, angalia jinsi katika bypasses zifuatazo jibu la ukurasa wa iframe halina kichwa chochote cha CSP kinachozuia utekelezaji wa JS.
Thamani ya self
ya script-src
haitaruhusu utekelezaji wa msimbo wa JS ukitumia protokali ya data:
au sifa ya srcdoc
.
Hata hivyo, hata thamani ya none
ya CSP itaruhusu utekelezaji wa iframes ambazo zinaweka URL (kamili au njia tu) katika sifa ya src
.
Kwa hivyo inawezekana kupita CSP ya ukurasa kwa:
Note how the previous CSP only permits the execution of the inline script.
However, only if1
and if2
scripts are going to be executed but only if1
will be able to access the parent secret.
Therefore, it’s possible to bypass a CSP if you can upload a JS file to the server and load it via iframe even with script-src 'none'
. This can potentially be also done abusing a same-site JSONP endpoint.
You can test this with the following scenario where a cookie is stolen even with script-src 'none'
. Just run the application and access it with your browser:
Maudhui ndani ya iframe yanaweza kuwekwa chini ya vizuizi vya ziada kupitia matumizi ya sifa ya sandbox
. Kwa kawaida, sifa hii haitumiki, ikimaanisha hakuna vizuizi vilivyowekwa.
Wakati inapotumika, sifa ya sandbox
inaweka vizuizi kadhaa:
Maudhui yanachukuliwa kana kwamba yanatoka kwenye chanzo pekee.
Jaribio lolote la kuwasilisha fomu linazuiwa.
Utekelezaji wa skripti unakatazwa.
Upatikanaji wa API fulani unazuiliwa.
Inazuia viungo kuingiliana na muktadha mwingine wa kuvinjari.
Matumizi ya plugins kupitia <embed>
, <object>
, <applet>
, au lebo zinazofanana yanakatazwa.
Usafiri wa muktadha wa juu wa kuvinjari wa maudhui yenyewe unazuiliwa.
Vipengele vinavyosababishwa kiotomatiki, kama vile upigaji video au kuzingatia kiotomatiki kwa udhibiti wa fomu, vinazuiwa.
Thamani ya sifa inaweza kuachwa kuwa tupu (sandbox=""
) ili kuweka vizuizi vyote vilivyotajwa hapo juu. Vinginevyo, inaweza kuwekwa kwenye orodha ya thamani maalum zilizotenganishwa kwa nafasi ambazo zinatoa msamaha kwa iframe kutoka kwa vizuizi fulani.
Angalia kurasa zifuatazo:
Bypassing SOP with Iframes - 1Bypassing SOP with Iframes - 2Blocking main page to steal postmessageSteal postmessage modifying iframe locationJifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)