XSSI (Cross-Site Script Inclusion)
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Cross-Site Script Inclusion (XSSI) ni udhaifu unaotokana na asili ya lebo ya script
katika HTML. Tofauti na rasilimali nyingi, ambazo zinategemea Same-Origin Policy (SOP), scripts zinaweza kujumuishwa kutoka maeneo tofauti. Tabia hii inakusudia kuwezesha matumizi ya maktaba na rasilimali nyingine zinazohifadhiwa kwenye seva tofauti lakini pia inaletee hatari ya usalama.
Bypass of SOP: Scripts hazihusishwa na Same-Origin Policy, zikiruhusiwa kujumuishwa kati ya maeneo.
Data Exposure: Mshambuliaji anaweza kutumia tabia hii kusoma data iliyopakiwa kupitia lebo ya script
.
Impact on Dynamic JavaScript/JSONP: XSSI ni muhimu hasa kwa JavaScript ya dinamik au JSON with Padding (JSONP). Teknolojia hizi mara nyingi hutumia taarifa za "ambient-authority" (kama vidakuzi) kwa ajili ya uthibitishaji. Wakati ombi la script linapotolewa kwa mwenyeji tofauti, akreditif hizi (mfano, vidakuzi) hujumuishwa moja kwa moja katika ombi.
Authentication Token Leakage: Ikiwa mshambuliaji anaweza kumdanganya kivinjari cha mtumiaji kuomba script kutoka seva wanayodhibiti, wanaweza kuwa na uwezo wa kupata taarifa nyeti zilizomo katika maombi haya.
Static JavaScript - Hii inawakilisha aina ya kawaida ya XSSI.
Static JavaScript with Authentication - Aina hii ni tofauti kwa sababu inahitaji uthibitishaji ili kufikia.
Dynamic JavaScript - Inahusisha JavaScript inayozalisha maudhui kwa njia ya dinamik.
Non-JavaScript - Inarejelea udhaifu ambao hauhusishi JavaScript moja kwa moja.
Taarifa ifuatayo ni muhtasari wa https://www.scip.ch/en/?labs.20160414. Angalia kwa maelezo zaidi.
Katika mbinu hii, taarifa za faragha zimejumuishwa ndani ya faili ya JavaScript inayopatikana kimataifa. Wavamizi wanaweza kubaini faili hizi kwa kutumia mbinu kama kusoma faili, kutafuta maneno, au matumizi ya kawaida ya kawaida. Mara baada ya kupatikana, script inayoshikilia taarifa za faragha inaweza kujumuishwa katika maudhui ya uhalifu, ikiruhusu ufikiaji usioidhinishwa wa data nyeti. Mbinu moja ya mfano ya unyakuzi inaonyeshwa hapa chini:
Aina hizi za mashambulizi ya XSSI zinahusisha taarifa za siri kuongezwa kwa njia ya kidinamikia kwenye skripti kama jibu la ombi la mtumiaji. Ugunduzi unaweza kufanywa kwa kutuma maombi yenye na bila kuki na kulinganisha majibu. Ikiwa taarifa zinatofautiana, inaweza kuashiria uwepo wa taarifa za siri. Mchakato huu unaweza kuandaliwa kwa kutumia zana kama DetectDynamicJS nyongeza ya Burp.
Ikiwa data za siri zimehifadhiwa katika variable ya kimataifa, zinaweza kutumika kwa kutumia mbinu zinazofanana na zile zinazotumika katika XSSI ya Kawaida. Hata hivyo, ikiwa data za siri zimejumuishwa katika jibu la JSONP, washambuliaji wanaweza kuiba kazi ya callback ili kupata taarifa hizo. Hii inaweza kufanywa kwa kubadilisha vitu vya kimataifa au kuanzisha kazi itakayotekelezwa na jibu la JSONP, kama inavyoonyeshwa hapa chini:
Kwa mabadiliko ya prototype tampering kwa mabadiliko ya muktadha wa ndani, mara nyingine inaweza kutumika. Mbinu hii inatumia muundo wa JavaScript, ambapo tafsiri ya msimbo inahusisha kupita kwenye mnyororo wa prototype ili kupata mali inayoitwa. Kwa kubadilisha kazi fulani, kama vile Array
's slice
, washambuliaji wanaweza kufikia na kuvuja mabadiliko yasiyo ya kimataifa:
Further details on attack vectors can be found in the work of Security Researcher Sebastian Lekies, who maintains a list of vectors.
Utafiti wa Takeshi Terada unaleta aina nyingine ya XSSI, ambapo faili za Non-Script, kama CSV, zinavuja cross-origin kwa kuingizwa kama vyanzo katika script
tag. Matukio ya kihistoria ya XSSI, kama shambulio la Jeremiah Grossman la mwaka 2006 kusoma kitabu kamili cha anwani za Google na uvujaji wa data wa JSON wa Joe Walker wa mwaka 2007, yanaonyesha ukali wa vitisho hivi. Zaidi ya hayo, Gareth Heyes anaelezea toleo la shambulio linalohusisha JSON iliy encoded kwa UTF-7 ili kutoroka muundo wa JSON na kutekeleza scripts, ambayo ni bora katika vivinjari vingine:
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)