您的位置:首页 > 其它

乌云白帽大会笔记

2016-07-09 23:52 288 查看

发信息“postMessage”方法

otherWindow.postMessage(message, targetOrigin);


otherWindow:指目标窗口,也就是给哪个window发信息,是window.frames 属性

window.open 方法创建的窗口

PostMessage

需要特别严谨验证:输入,origin

如:验证domain 是不是等于 “http://xxxxx.com”的 -》

popUp = window.open(domain+'其他路径',‘myWindow’); popUp.postMessage(message.domain);


然后建立监听事件:

window.addEventListener('xxx', function(event){
if(event.origin !== domain) return;
......
},false)


https的站不建议使用onmessage

不要相信任何人给发的链接

接受信息的 onmessage 事件

data: 信息

origin: 信息来源地址

source: 源DOMWindow 对象

var onmessage = function (event) {
var data = event.data;
var origin = event.origin;
}
if (typeof window.addEventListener != 'undefined') {
window.addEventListener('message', onmessage, false);
}else if (typeof window.attachEvent != 'undefined') {
window.attachEvent('onmessage', onmessage);
}


空referer或JS的URL跳转漏洞会绕过白名单referer限制

window.open 到iframe里的时候,浏览器popup blocker不会提示

origin校验可能会不严谨:indexOf(“www.wooyun.org” ) !=-1

RegExp(“^http://www.wooyun.org$“) 这里的点可以表示任意字符

Ref:来自 乌云著名段子手—— 呆子不开口
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  乌云 白帽