hacktricks/pentesting-web/xss-cross-site-scripting/some-same-origin-method-execution.md
2024-02-10 13:11:20 +00:00

5.6 KiB

SOME - Izvršavanje metoda sa istog izvora

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Izvršavanje metoda sa istog izvora

Postojaće situacije u kojima možete izvršiti neki ograničeni JavaScript na stranici. Na primer, u slučaju kada možete kontrolisati povratnu vrednost koja će biti izvršena.

U tim slučajevima, jedna od najboljih stvari koje možete uraditi je pristup DOM-u da biste pozvali bilo koju osetljivu akciju koju možete pronaći tamo (kao što je klik na dugme). Međutim, obično ćete ovu ranjivost pronaći na malim krajnjim tačkama bez ikakvih interesantnih stvari u DOM-u.

U tim scenarijima, ovaj napad će biti veoma koristan, jer je njegov cilj da zloupotrebite ograničeno izvršavanje JS-a unutar DOM-a sa druge stranice sa istog domena sa mnogo interesantnih akcija.

Osnovni tok napada je sledeći:

  • Pronađite povratnu vrednost koju možete zloupotrebiti (potencijalno ograničenu na [\w\._]).
  • Ako nije ograničeno i možete izvršiti bilo koji JS, jednostavno možete zloupotrebiti ovo kao redovni XSS.
  • Naterajte žrtvu da otvori stranicu kojom upravlja napadač.
  • Stranica će se otvoriti sama u novom prozoru (novi prozor će imati objekat opener koji se odnosi na početni prozor).
  • Početna stranica će učitati stranicu gde se nalazi interesantan DOM.
  • Druga stranica će učitati ranjivu stranicu zloupotrebljavajući povratnu vrednost i koristeći objekat opener da pristupi i izvrši neku akciju na početnoj stranici (koja sada sadrži interesantan DOM).

{% hint style="danger" %} Imajte na umu da čak i ako početna stranica pristupi novom URL-u nakon što je kreirala drugu stranicu, opener objekat druge stranice i dalje je validna referenca na prvu stranicu u novom DOM-u.

Osim toga, da bi druga stranica mogla koristiti opener objekat, obe stranice moraju biti na istom izvoru. To je razlog zašto, da biste zloupotrebili ovu ranjivost, morate pronaći neku vrstu XSS-a sa istog izvora. {% endhint %}

Eksploatacija

Primer

  • Možete pronaći ranjiv primer na https://www.someattack.com/Playground/
  • Imajte na umu da u ovom primeru server 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 navesti upotrebu opener-a.
  • Takođe proverite ovaj CTF writeup: https://ctftime.org/writeup/36068

Reference

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!