首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在CSRF攻击中,可以使用postMessage将数据转发给黑客的iframe吗?

在CSRF攻击中,可以使用postMessage将数据转发给黑客的iframe吗?
EN

Security用户
提问于 2015-04-14 16:31:37
回答 2查看 1.3K关注 0票数 2

考虑一个具有密码的合法站点的开放会话的用户。此页面没有反CSRF令牌。

黑客用两个隐藏的iframes创建一个网页。一个iframe使用密码在页面上获取密码,并通过html5 windows.postMessage()将该密码发送到另一个iframe (获取攻击者的站点),后者接受此密码并通过http GET中的查询参数将其发送到黑客的web服务中。

通过网络钓鱼攻击,黑客引诱用户用开放会话点击他的网页上有这2个iframes和窃取密码的链接。

这次攻击有可能吗?

EN

回答 2

Security用户

发布于 2015-04-14 19:06:04

一个iframe使用密码在页面上获取密码,并通过html5 windows.postMessage()将该密码发送到另一个iframe (获取攻击者的站点),后者接受此密码并通过http GET中的查询参数将其发送到黑客的web服务中。

postMessage是用Javascript完成的。这意味着,除非受害者页面是以某种方式显式设计的,否则不能强制使用CSRF攻击来强制postMessage,可以通过简单的POST或GET请求触发对跨原点页的任意postMessage调用。相反,攻击者需要注入脚本来触发postMessage,也就是说,它需要跨站点脚本(XSS)。但是,如果XSS是可能的,那么通常没有必要通过使用postMessage来使它变得过于复杂。

票数 1
EN

Security用户

发布于 2015-04-15 09:22:51

不- window.postMessage触发JavaScript事件,而不是HTTP请求.

目标窗口需要侦听消息。如MDN所指出的那样:

如果您不希望从其他站点接收消息,请不要为消息事件添加任何事件侦听器。这是一种完全避免安全问题的绝对安全的方法。如果您确实希望从其他站点接收消息,请始终使用源验证发件人的身份。

因此,这不是postMessage的设计缺陷--然而,过去的的实现缺陷postMessage,就像WebKit里的这个有一些缺陷:

如果HTML文档包含标记,则其href属性的值将覆盖document.documentURI的值。这与实现documentURI、Firefox和Opera的其他两个浏览器不一致。另外,JavaScript不应该能够覆盖document.documentURI的值。这个bug有一些安全后果。例如,攻击者可以将postMessage的uri参数设置为任意URI,从而挫败使用uri进行的任何安全检查。uri参数对于区分HTTP和HTTPS以及确定发送方的主机是否与其document.domain值不同非常重要。

票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/86010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档