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

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

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 ya opener 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