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
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
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
- Možete koristiti ovaj obrazac da generišete PoC za eksploataciju ovog tipa 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
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šćenjeopener
. - 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
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.