PostMessage跨域漏洞详解分析 WEB

admin 2019-9-7 262

注:本文为“小米安全中心”原创,转载请联系“小米安全中心”

背景

价值: $3000

漏洞原因:postMessage跨域漏洞导致,利用websocket接收用户认证token

原文地址:https://labs.detectify.com/2017/02/28/hacking-slack-using-postmessage-and-websocket-reconnect-to-steal-your-precious-token/

基础知识

在了解这个漏洞的时候我们需要了解以下基础的知识:PostMessage

PostMessage

PostMessage API是一个很简单的实现跨域的方法,最基本的使用方法是:

B站的data数据,发送数据端


PostMessage跨域漏洞分析

获取数据代码:


PostMessage跨域漏洞分析
PostMessage产生的漏洞

伪造获取数据端

若是发送数据端的第二个参数使用的是"*" 那么表示的是这个数据可以被任何域获取到,这时候只要构造window.addEventListener来接受数据就可以了

伪造发送数据端

来看一段代码:


PostMessage跨域漏洞分析

可以看到对接收的message.origin进行了判断,但是使用的正则并不标准(小米安全中心入驻安全脉搏账号发布 转载请注明来源安全脉搏https://www.secpulse.com/archives/56637.html)

直接利用“wwwaexamplesender.com“, “wwwbexamplesender.com” etc.进行绕过,用postMessage发送数据给他接收

使用的poc可以参考:


PostMessage跨域漏洞分析

 

测试代码:window.postMessage("hello", "*")

利用xss进行攻击

先看代码:


PostMessage跨域漏洞分析

 

这个对来源进行了严格的限制,可以通过查找http://www.examplesender.com/上面的xss进行攻击

查看是否使用PostMessage

这个可以使用chrome下的开发者工具,在source ——> Global Listeners 下面可以看到

案例

上面slack的漏洞是一个案例,总体的思路就是站点监听着一个message,并且没有判断message的来源,导致可以给他发message,message中有websocket的url的话,站点会和发送message的站点建立websocket链接,兵器会把认证后的token传递给发送者站点

该作者还有个PostMessage的漏洞,会影响到百万网站,是AddThis这个插件导致的,不难理解。

1.qq邮箱

再国内的站点了翻了一个下午也没有能找到一个可以利用的漏洞,不过在qq邮箱还是可以找到可以练习的地方

首先打开mail.qq.com 使用开发者工具打开查看listeners


PostMessage跨域漏洞分析

我们构造测试代码:

window.postMessage("hello", "*")
PostMessage跨域漏洞分析

 

这时候对代下断点进行调试,可以最终得到:

window.postMessage('{"action":"resize","width":"222","height":400}', "*")

方法有两个一个是close,一个是resize。

直接执行的话就可以看到登入框的大小属性产生了变化,构造poc:


PostMessage跨域漏洞分析

 

构造html页面,访问这个页面,就能看到登入框的大小产生了变化,


PostMessage跨域漏洞分析

这个只是个案例,要是邮箱中接收的信息做了其他处理,那么就有可能产生其他的问题

2.微博

qq邮箱是伪造发送者,那微博这个就是伪造接收者。同样打开微博查看信息

可以看到一行代码:

b
&& b
.contentWindow && b
.contentWindow.postMessage ? b
.contentWindow.postMessage(g, "*")

这个很明显的使用了*的配置

构造poc:


PostMessage跨域漏洞分析

 

访问html页面触发:


PostMessage跨域漏洞分析

 

这个里面没有任何可以利用的东西,但是一旦有用户的敏感信息,那么就可以跨域获取这些信息

参考资料

http://www.cnblogs.com/dolphinX/p/3464056.html

https://labs.detectify.com/2016/12/15/postmessage-xss-on-a-million-sites/

【注:本文为“小米安全中心”原创 小米安全中心入驻安全脉搏账号发布 转载请注明来源安全脉搏】

本文web安全相关术语:黑盒测试方法 黑盒测试和白盒测试 网站安全检测 360网站安全检测 网络安全知识 网络安全技术 网络信息安全 网络安全工程师


少客联盟- 版权声明 1、本主题所有言论和图片纯属会员个人意见,与少客联盟立场无关。
2、本站所有主题由该帖子作者发表,该帖子作者admin少客联盟享有帖子相关版权。
3、少客联盟管理员和版主有权不事先通知发贴者而删除本文。
4、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者admin少客联盟的同意。
5、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任。
6、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责。
7、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意。
8、官方反馈邮箱:chinasuc@chinasuc.cn


上一篇:java 学习路线以及建议
下一篇:CVE-2019-0708——RDP漏洞利用
Whatever is worth doing is worth doing well. juvenile hacker league
最新回复 (0)
    • 少客联盟
      2
        登录 注册 QQ登录(停用)
返回