PostMessage跨域漏洞分析

注:本文为“小米安全中心”原创 ,转载请联系“小米安全中心” 背景 价值: $3000 漏洞原因:postMessage跨域漏洞导致,利用websocket接收用户认证token 原文地址:https…

注:本文为“小米安全中心”原创 请联系“小米安全中心” 背景 价值:3000美元 漏洞原因:使用websocket接收用户身份验证令牌导致的PostMessage跨域漏洞 原始地址:https://labs.detectify.com/2017/02/28/hacking-slack-using-postmessage-and-websocket-reconnect-to-steal-your-precious-token/ 基础知识 在理解此漏洞时,我们需要了解以下基本知识:PostMessage PostMessage的 PostMessage API是一种实现跨域的非常简单的方法。最基本的用法是: 站B的数据数据,发送数据结束

获取数据代码:

PostMessage生成的漏洞 伪造获取数据端 如果发送数据的第二个参数结束使用'*',则表示可以通过任何域获取数据。在这种情况下,只需构造window.addEventListener来接受数据。 伪造发送数据端 看一段代码:

你可以看到收到的message.origin的判断,但是使用的规律性不是标准的(小米安全中心在安全脉冲账号中解决了 转载,请注明源安全脉冲https://www.com/archives/56637.html ) 直接使用“wwwaexamplesender.com”,“wwwbexamplesender.com”等绕过,用postMessage向他发送数据 从对等方接收数据时失败 Failure when receiving data from the peer [注:本文为“小米安全中心”原版  小米安全中心入驻安全脉冲账户发布 转载请注明源安全脉冲]