SOME - Same Origin Method Execution
Reading time: 4 minutes
tip
学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
Same Origin Method Execution
在某些情况下,您可以在页面中执行一些有限的javascript。例如,在您可以 控制将被执行的回调值的情况下。
在这些情况下,您可以做的最好的事情之一是访问DOM以调用您能找到的任何敏感操作(例如点击按钮)。然而,通常您会在没有任何有趣内容的DOM的小端点中发现此漏洞。
在这些场景中,这种攻击将非常有用,因为其目标是能够利用来自同一域的不同页面中的DOM内的有限JS执行进行更有趣的操作。
基本上,攻击流程如下:
- 找到一个您可以利用的回调(可能限制为 [\w\._])。
- 如果没有限制并且您可以执行任何JS,您可以像常规XSS一样利用它。
- 让受害者打开一个由 攻击者控制的页面。
- 页面将自己在一个不同的窗口中打开(新窗口将有对象**
opener
**引用初始窗口)。 - 初始页面将加载有趣DOM所在的页面。
- 第二个页面将加载利用回调的脆弱页面,并使用**
opener
对象访问并在初始页面中执行某些操作**(现在包含有趣的DOM)。
caution
请注意,即使初始页面在创建第二个页面后访问新URL,第二个页面的opener
对象仍然是对新DOM中第一个页面的有效引用。
此外,为了使第二个页面能够使用opener对象,两个页面必须在同一源中。这就是为什么为了利用此漏洞,您需要找到某种同一源中的XSS。
Exploitation
- 您可以使用此表单来生成PoC以利用此类漏洞:https://www.someattack.com/Playground/SOMEGenerator
- 为了找到具有点击的HTML元素的DOM路径,您可以使用此浏览器扩展:https://www.someattack.com/Playground/targeting_tool
Example
- 您可以在https://www.someattack.com/Playground/找到一个脆弱的示例。
- 请注意,在此示例中,服务器生成javascript代码并将其添加到基于回调参数内容的HTML中:
<script>opener.{callbacl_content}</script>
**。这就是为什么在此示例中您不需要明确指示使用opener
。 - 还可以查看此CTF写作:https://ctftime.org/writeup/36068
References
tip
学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。