SOME - Izvršenje metoda iste domene

Reading time: 3 minutes

tip

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)

Podržite HackTricks

Izvršenje metoda iste domene

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 bilo čega zanimljivog 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 jednostavno 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).

caution

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 u istoj domeni. To je razlog zašto, da biste zloupotrebili ovu ranjivost, morate pronaći neku vrstu XSS u istoj domeni.

Eksploatacija

Primer

  • Možete pronaći ranjivi 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

Reference

tip

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)

Podržite HackTricks