一个站点监听来自任何人的浏览器消息的可利用性有多大?
我正在一个发现一些 iframe 问题的网站上工作。案例是站点 A 有一个站点 B 的 iframe,站点 A 从任何地方侦听“消息” ,然后当消息进入时它可以执行两种不同的操作:
- 设置 document.location = "传入消息数据"
- 创建一个表单,将 action 属性值设置为“传入消息数据”,将其添加到 DOM 中,然后提交表单。
这意味着我可以设置站点 Evil,包含站点 A 的 iframe,然后开始发送任意消息,例如“javascript:alert(1)”,这将在上述两种情况下在 iframe 上下文中执行 javascript。在我向我工作的人报告这个问题之前,我需要有一个场景,在这个场景中这将是一个主要问题。这就是它变得棘手的地方,因为我无法真正想出一个这将是一个重大问题的场景。我的想法是:
- 我可以在站点 A 的上下文中执行 javascript,但由于 SoP,我无法获取 cookie。
- 我可以在站点 Evil 上设置一个关键侦听器,并让站点 A iframe 填满屏幕,要求登录,这样可以收集站点 A 的登录信息。这需要一些社会工程才能正常工作。
但这是我能想到的最好的,所以我的问题是,我是否完全忽略了一些东西?谷歌搜索不会产生任何其他选择。
编辑:
显然,这通过站点 B(它是一家半知名公司,但仍然)为 XSS 打开了站点 A(我为之工作)。我正在考虑提出的另一点是,到底为什么有人会以这种方式做任何事情?创建一个表单并提交并回答一些收到的数据?我想不出这样做的充分理由,也许你们中的任何一个好人都可以?
编辑2:
似乎没有办法绕过同源策略,即使我可以通过位于 Site Evil 上的 iframe 在站点 A 的上下文中执行任意 javascript。因此,这种“漏洞”与攻击者让用户点击任意链接没有什么不同。