{{#include ../banners/hacktricks-training.md}} # 描述 在一个**攻击者**可以**控制**一个带有属性**`target="_blank" rel="opener"`**的**` 在一个文件夹中创建以下页面并运行一个web服务器,使用`python3 -m http.server`\ 然后,**访问**`http://127.0.0.1:8000/`vulnerable.html,**点击**链接并注意**原始**网站的**URL**是如何**变化**的。 ```html:vulnerable.html

Victim Site

Controlled by the attacker ``` ```html:malicious.html ``` ```html:malicious_redir.html

New Malicious Site

``` ## 可访问的属性 在发生**跨源**访问的情况下(跨不同域的访问),恶意网站可以访问的由**opener** JavaScript对象引用所指的**window** JavaScript类实例的属性仅限于以下内容: - **`opener.closed`**:此属性用于确定窗口是否已关闭,返回布尔值。 - **`opener.frames`**:此属性提供对当前窗口内所有iframe元素的访问。 - **`opener.length`**:此属性返回当前窗口中存在的iframe元素的数量。 - **`opener.opener`**:可以通过此属性获取打开当前窗口的窗口的引用。 - **`opener.parent`**:此属性返回当前窗口的父窗口。 - **`opener.self`**:此属性提供对当前窗口本身的访问。 - **`opener.top`**:此属性返回最上层的浏览器窗口。 然而,在域名相同的情况下,恶意网站可以访问[**window**](https://developer.mozilla.org/en-US/docs/Web/API/Window) JavaScript对象引用所暴露的所有属性。 # 预防 预防信息记录在[HTML5 Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/HTML5_Security_Cheat_Sheet.html#tabnabbing)中。 ## 参考 - [https://owasp.org/www-community/attacks/Reverse_Tabnabbing](https://owasp.org/www-community/attacks/Reverse_Tabnabbing) {{#include ../banners/hacktricks-training.md}}