SOME - Same Origin Method Execution
Reading time: 3 minutes
tip
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)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Same Origin Method Execution
Kutakuwa na nyakati ambapo unaweza kutekeleza javascript kidogo kwenye ukurasa. Kwa mfano, katika kesi ambapo unaweza kudhibiti thamani ya callback ambayo itatekelezwa.
Katika hizo kesi, moja ya mambo bora unayoweza kufanya ni kufikia DOM ili kuita chochote kitendo nyeti unachoweza kukiona huko (kama kubonyeza kitufe). Hata hivyo, kwa kawaida utapata udhaifu huu katika nukta ndogo bila kitu chochote cha kuvutia katika DOM.
Katika hali hizo, shambulio hili litakuwa la manufaa sana, kwa sababu lengo lake ni kuwa na uwezo wa kudhulumu utekelezaji wa JS mdogo ndani ya DOM kutoka ukurasa tofauti kutoka kwenye kikoa kimoja na vitendo vingi vya kuvutia.
Kimsingi, mtiririko wa shambulio ni kama ifuatavyo:
- Pata callback ambayo unaweza kudhulumu (inaweza kuwa na mipaka kwa [\w\._]).
- Ikiwa haijapunguzika na unaweza kutekeleza JS yoyote, unaweza tu kudhulumu hii kama XSS ya kawaida.
- Fanya mhasiriwa afungue ukurasa unaodhibitiwa na mshambuliaji.
- Ukurasa utafungua mwenyewe katika dirisha tofauti (dirisha jipya litakuwa na kitu
opener
kinachorejelea cha awali). - Ukurasa wa awali utafungua ukurasa ambapo DOM ya kuvutia iko.
- Ukurasa wa pili utafungua ukurasa dhaifu ukidhalilisha callback na kutumia kitu
opener
ili kufikia na kutekeleza kitendo chochote katika ukurasa wa awali (ambayo sasa ina DOM ya kuvutia).
caution
Kumbuka kwamba hata kama ukurasa wa awali unapata URL mpya baada ya kuunda ukurasa wa pili, kitu cha opener
cha ukurasa wa pili bado ni rejeleo halali kwa ukurasa wa kwanza katika DOM mpya.
Zaidi ya hayo, ili ukurasa wa pili uweze kutumia kitu cha opener kurasa zote mbili lazima ziwe katika kikoa kimoja. Hii ndiyo sababu, ili kudhulumu udhaifu huu, unahitaji kutafuta aina fulani ya XSS katika kikoa kimoja.
Exploitation
- Unaweza kutumia fomu hii ili kuunda PoC ya kudhulumu aina hii ya udhaifu: https://www.someattack.com/Playground/SOMEGenerator
- Ili kupata njia ya DOM kwa kipengele cha HTML chenye bonyezo unaweza kutumia nyongeza hii ya kivinjari: https://www.someattack.com/Playground/targeting_tool
Example
- Unaweza kupata mfano dhaifu katika https://www.someattack.com/Playground/
- Kumbuka kwamba katika mfano huu seva in azalisha msimbo wa javascript na kuongeza kwenye HTML kulingana na maudhui ya parameter ya callback:
<script>opener.{callbacl_content}</script>
. Ndio maana katika mfano huu huwezi kuhitaji kuonyesha matumizi yaopener
wazi. - Pia angalia andiko hili la CTF: https://ctftime.org/writeup/36068
References
tip
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)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.