SOME - Same Origin Method Execution
Last updated
Last updated
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Biće prilika kada možete izvršiti neki ograničeni javascript na stranici. Na primer, u slučaju kada možete kontrolisati vrednost povratnog poziva koja će biti izvršena.
U tim slučajevima, jedna od najboljih stvari koje možete učiniti je da pristupite DOM-u kako biste pozvali bilo koju osetljivu akciju koju možete pronaći (poput klika na dugme). Međutim, obično ćete ovu ranjivost pronaći u malim krajnjim tačkama bez ikakvih zanimljivih stvari u DOM-u.
U tim scenarijima, ovaj napad će biti veoma koristan, jer je njegov cilj da bude u mogućnosti da zloupotrebi ograničeno izvršavanje JS unutar DOM-a sa različite stranice iz iste domene sa mnogo zanimljivim akcijama.
U osnovi, tok napada je sledeći:
Pronađite povratni poziv koji možete zloupotrebiti (potencijalno ograničen na [\w\._]).
Ako nije ograničen i možete izvršiti bilo koji JS, mogli biste to zloupotrebiti kao redovni XSS
Naterajte žrtvu da otvori stranicu koju kontroliše napadač
Stranica će se otvoriti u drugom prozoru (novi prozor će imati objekat opener
koji referencira inicijalni)
Inicijalna stranica će učitati stranicu gde se nalazi zanimljivi DOM.
Druga stranica će učitati ranjivu stranicu zloupotrebljavajući povratni poziv i koristeći objekat opener
da pristupi i izvrši neku akciju na inicijalnoj stranici (koja sada sadrži zanimljivi DOM).
Imajte na umu da čak i ako inicijalna stranica pristupi novoj URL adresi nakon što je kreirala drugu stranicu, opener
objekat druge stranice je i dalje važeća referenca na prvu stranicu u novom DOM-u.
Štaviše, da bi druga stranica mogla da koristi objekat opener, obe stranice moraju biti iz iste domene. To je razlog zašto, da biste zloupotrebili ovu ranjivost, morate pronaći neku vrstu XSS u istoj domeni.
Možete koristiti ovaj oblik da generišete PoC za eksploataciju ove vrste ranjivosti: https://www.someattack.com/Playground/SOMEGenerator
Da biste pronašli DOM putanju do HTML elementa sa klikom, možete koristiti ovu ekstenziju za pretraživač: https://www.someattack.com/Playground/targeting_tool
Možete pronaći ranjiv primer na https://www.someattack.com/Playground/
Imajte na umu da server u ovom primeru generiše javascript kod i dodaje ga u HTML na osnovu sadržaja parametra povratnog poziva: <script>opener.{callbacl_content}</script>
. Zato u ovom primeru ne morate eksplicitno naznačiti korišćenje opener
.
Takođe proverite ovaj CTF izveštaj: https://ctftime.org/writeup/36068
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)