扫码领资料
获网安教程
来Track安全社区投稿~
赢千元稿费!还有保底奖励~(https://bbs.zkaq.cn)
介绍
在本文中,我很高兴分享我在 Microsoft 安全响应中心(MSRC)网站上发现一个基于 DOM 的 XSS 漏洞的经历,并介绍微软安全团队如何迅速有效地修复了该漏洞。
基于 DOM 的 XSS 的背景
基于 DOM 的 XSS 漏洞通常发生在 JavaScript 从攻击者可控制的来源(如 URL)中获取数据,并将其传递给支持动态代码执行的接收点(如 eval()
或 innerHTML
,在本例中为 innerHTML
)时。这样攻击者可以执行恶意 JavaScript,通常能够劫持其他用户的账户。
发现并分析漏洞代码
2023 年 2 月 12 日,我在 MSRC 博客上看到他们发布了一篇关于新 MSRC 博客站点的文章,该站点于 2023 年 2 月 9 日启动。
img
上述博客文章宣布,MSRC 博客站点已焕然一新,提升了网站性能、搜索功能、分类和标签功能。这表明该站点添加了新的开发功能。
以下是我发现并分析漏洞代码并确定问题根源的分步指南。
我首先使用了搜索功能,并查看了网站的 HTML 源代码。发现 search.js
文件正在被加载,且搜索查询被作为 query
参数添加到 URL 中。
img
接着,我开始分析 search.js
文件,以查找漏洞的根本原因。
inputBox
和 searchResults
中是否均存在值。search.js
:第 2296–2305 行param
函数以检索查询参数的值,并将其存储在 searchQuery
参数中。search.js
:第 2389–2393 行searchQuery
参数传递给 executeSearch
函数。search.js
:第 2296–2305 行executeSearch
函数中,应用程序再次调用 param
函数,并将结果解析为 searchQueryTitle.innerHTML
。结论
param
函数中获取用户输入,并将其直接设置为 DOM 元素的 innerHTML
,而未进行适当的输入过滤。这使得潜在攻击者可以注入并在受害者的浏览器中执行恶意脚本。举例
向微软报告漏洞
漏洞概述
Microsoft MSRC Blog 版本: 1.1.02231.103–9e425f97
https://msrc.microsoft.com/blog/search/
https://msrc.microsoft.com/blog/js/search.js
param
query
<img/src/onerror=alert(1)>
https://msrc.microsoft.com/blog/search/?query=<img/src/onerror=alert(1)>
概念验证(PoC)
MSRC 团队如何修复该漏洞
param
函数。验证修复的漏洞
声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。
原文始发于微信公众号(白帽子左一):挖掘 Microsoft MSRC中的DOM型 XSS
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论