mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 22:52:06 +00:00
5.9 KiB
5.9 KiB
SOME - 同源方法执行
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- 你在一家网络安全公司工作吗?想要在HackTricks中看到你的公司广告吗?或者想要获取PEASS的最新版本或下载HackTricks的PDF吗?请查看订阅计划!
- 发现我们的独家NFTs收藏品——The PEASS Family
- 获取官方PEASS和HackTricks周边产品
- 加入💬 Discord群组或电报群组,或者关注我在Twitter上的🐦@carlospolopm。
- 通过向hacktricks repo 和hacktricks-cloud repo 提交PR来分享你的黑客技巧。
同源方法执行
有时候你可以在一个页面中执行一些有限的javascript代码。例如,在你可以控制将要执行的回调值的情况下。
在这种情况下,你可以做的最好的事情之一就是访问DOM以调用其中的敏感操作(比如点击一个按钮)。然而,通常你会在没有任何有趣的DOM内容的小型端点中发现这个漏洞。
在这些场景中,这种攻击将非常有用,因为它的目标是能够从同一域中的不同页面滥用DOM中的有限JS执行,并执行更有趣的操作。
基本上,攻击流程如下:
- 找到一个可以滥用的回调函数(可能仅限于[\w\._])。
- 如果没有限制并且你可以执行任何JS代码,你可以将其视为常规的XSS攻击。
- 让受害者打开由攻击者控制的页面。
- 页面将在不同的窗口中打开(新窗口将具有引用初始窗口的**
opener
**对象)。 - 初始页面将加载包含有趣DOM的页面。
- 第二个页面将加载滥用回调函数的易受攻击页面,并使用**
opener
对象来访问并在初始页面中执行某些操作**(现在包含有趣的DOM)。
{% hint style="danger" %}
请注意,即使初始页面在创建第二个页面后访问了一个新的URL,第二个页面的**opener
对象仍然是对新DOM中第一个页面的有效引用**。
此外,为了使第二个页面能够使用opener对象,两个页面必须处于同一源。这就是为什么为了滥用这个漏洞,你需要找到一种在同一源中的XSS漏洞的原因。 {% endhint %}
利用
- 你可以使用这个表单来生成一个用于利用这种类型漏洞的PoC:https://www.someattack.com/Playground/SOMEGenerator
- 为了找到一个具有点击功能的HTML元素的DOM路径,你可以使用这个浏览器扩展:https://www.someattack.com/Playground/targeting_tool
示例
- 你可以在https://www.someattack.com/Playground/找到一个易受攻击的示例。
- 请注意,在这个示例中,服务器生成javascript代码并将其基于回调参数的内容添加到HTML中:
<script>opener.{callbacl_content}</script>
。这就是为什么在这个示例中,你不需要显式指示使用opener
的原因。 - 还请查看这个CTF解题报告:https://ctftime.org/writeup/36068
参考资料
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- 你在一家网络安全公司工作吗?想要在HackTricks中看到你的公司广告吗?或者想要获取PEASS的最新版本或下载HackTricks的PDF吗?请查看订阅计划!
- 发现我们的独家NFTs收藏品——The PEASS Family
- 获取官方PEASS和HackTricks周边产品
- 加入💬 Discord群组或电报群组,或者关注我在Twitter上的🐦@carlospolopm。
- 通过向hacktricks repo 和hacktricks-cloud repo 提交PR来分享你的黑客技巧。