测试反向标签
ID |
---|
WSTG-CLNT-14 |
总结
Reverse Tabnabbing 是一种可以用于将用中重定向到钓鱼页面的攻击。这通常是由于将<a>
标签的target
属性设置为 _blank
而导致的,这会导致链接在新选项卡中打开。当同一 <a>
标签中未使用属性rel='noopener noreferrer'
时,新打开的页面可能会影响原始页面,并将其重定向到由攻击者控制的域。
由于新选项卡打开时用户位于原始域上,因此他们不太可能注意到页面已更改,尤其是在网络钓鱼页面与原始域相同时。因此,在攻击者控制的域上输入的任何凭据最终都将归攻击者所有。
通过window.open
JavaScript 函数打开的链接也容易受到此攻击。
注意:这是一个遗留问题,不会影响现代浏览器。旧版本的常用浏览器(例如,Google Chrome 88 之前的版本)以及 Internet Explorer 容易受到此攻击。
例
假设有一个 Web 应用程序,允许用户在其配置文件中插入 URL。如果应用程序容易受到反向 tabnabbing 攻击,恶意用户将能够提供指向具有以下代码的页面的链接:
<html>
<body>
<script>
window.opener.location = "https://example.org";
</script>
<b>Error loading...</b>
</body>
</html>
单击该链接将打开一个新选项卡,而原始选项卡将重定向到“example.org”。假设“example.org”看起来与易受攻击的 Web 应用程序相似,则用户不太可能注意到更改,并且更有可能在页面上输入敏感信息。
如何测试
-
检查应用程序的 HTML源代码,以查看带有
target="_blank"
的链接是否在rel
属性中使用了noopener
和noreferrer
关键字。如果不是,则该应用程序很可能容易受到反向 tabnabbing的攻击。如果该链接指向已被攻击者入侵的第三方网站,或者由用户控制,则该链接变得可被利用。 -
检查攻击者可以插入链接的区域,即控制
<a>
标签的href
参数。尝试插入一个链接到具有上述示例中给出的源代码的页面,看看原始域是否重定向。如果其他浏览器不起作用,则可以在IE中执行此测试。
修复
建议确保为所有链接设置 rel
HTML属性的 noreferrer
和noopener
关键字