mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 22:52:06 +00:00
113 lines
6.5 KiB
Markdown
113 lines
6.5 KiB
Markdown
<details>
|
|
|
|
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
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**](https://github.com/sponsors/carlospolop)!
|
|
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
|
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
|
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
|
|
|
</details>
|
|
|
|
|
|
# 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:
|
|
|
|
![https://owasp.org/www-community/assets/images/TABNABBING_OVERVIEW_WITH_LINK.png](https://owasp.org/www-community/assets/images/TABNABBING\_OVERVIEW\_WITH\_LINK.png)
|
|
|
|
## Bez povratnog linka
|
|
|
|
Veza između roditeljske i dečje stranice kada se koristi atribut za prevenciju:
|
|
|
|
![https://owasp.org/www-community/assets/images/TABNABBING_OVERVIEW_WITHOUT_LINK.png](https://owasp.org/www-community/assets/images/TABNABBING\_OVERVIEW\_WITHOUT\_LINK.png)
|
|
|
|
## Primeri <a href="#examples" id="examples"></a>
|
|
|
|
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" %}
|
|
```markup
|
|
<!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" %}
|
|
```markup
|
|
<!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" %}
|
|
```markup
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<body>
|
|
<h1>New Malicious Site</h1>
|
|
</body>
|
|
</html>
|
|
```
|
|
{% endcode %}
|
|
|
|
## Pristupačna svojstva <a href="#pristupačna-svojstva" id="pristupačna-svojstva"></a>
|
|
|
|
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**](https://developer.mozilla.org/en-US/docs/Web/API/Window) JavaScript objektne reference.
|
|
|
|
# Prevencija
|
|
|
|
Informacije o prevenciji su dokumentovane u [HTML5 Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/HTML5\_Security\_Cheat\_Sheet.html#tabnabbing).
|
|
|
|
## Reference
|
|
|
|
* [https://owasp.org/www-community/attacks/Reverse_Tabnabbing](https://owasp.org/www-community/attacks/Reverse_Tabnabbing)
|
|
|
|
|
|
|
|
|
|
<details>
|
|
|
|
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
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**](https://github.com/sponsors/carlospolop)!
|
|
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
|
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
|
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
|
|
|
</details>
|