MHTML脚本注入漏洞技术细节与防护措施

本文详细分析了Windows系统中MHTML协议处理程序的安全漏洞(CVE未公开),该漏洞允许攻击者通过特制链接执行跨站脚本攻击,并提供了客户端锁定协议处理程序的有效解决方案。

MHTML脚本注入漏洞技术分析

微软安全响应中心于2011年1月28日发布安全公告2501696,披露了MHTML协议处理程序中的漏洞。该漏洞允许攻击者构造恶意链接,当用户点击时会以目标文档的安全上下文执行反射脚本。

受影响系统范围

  • 默认情况下,Windows XP及所有后续支持的Windows版本均受影响
  • 虽然Internet Explorer是攻击媒介,但本质是Windows系统级漏洞,与IE版本无关

防护方案

安全公告提供了两种防护措施:

  1. 对所有Internet区域场景锁定MHTML协议处理程序
  2. 完全禁用该协议处理程序

解决方案副作用

测试发现唯一副作用是MHT文档中的脚本执行和ActiveX控件将被禁用。多数环境下影响有限:

  • MHTML主要通过后台机制使用,常规场景不受影响
  • 不含脚本的MHT文件可正常显示
  • 用户可通过信息栏临时允许协议执行(需手动操作)

服务端风险评估

任何允许用户输入反射回显的服务都可能受影响,实际风险取决于服务实现方式,其影响类似于服务端XSS漏洞但根源在客户端。

服务提供商建议方案

  1. 优先推荐客户端解决方案
  2. 服务端缓解方案(需谨慎评估):
    • 过滤请求/响应中的换行符
    • 在HTTP响应头前添加换行符
    • 修改HTTP响应状态码

防护有效性验证

提供测试MHT文件样本,包含以下特征:

1
2
Content-Type: text/html; charset="utf-8"
<script>alert("hello");</script>

防护生效时,浏览器会显示协议锁定提示栏阻止脚本执行。

技术团队

  • Dave Ross, MSRC工程团队
  • Chengyun Chu, MSRC工程团队
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计