MHTML脚本注入漏洞技术分析
微软安全响应中心于2011年1月28日发布安全公告2501696,披露了MHTML协议处理程序中的漏洞。该漏洞允许攻击者构造恶意链接,当用户点击时会以目标文档的安全上下文执行反射脚本。
受影响系统范围
- 默认情况下,Windows XP及所有后续支持的Windows版本均受影响
- 虽然Internet Explorer是攻击媒介,但本质是Windows系统级漏洞,与IE版本无关
防护方案
安全公告提供了两种防护措施:
- 对所有Internet区域场景锁定MHTML协议处理程序
- 完全禁用该协议处理程序
解决方案副作用
测试发现唯一副作用是MHT文档中的脚本执行和ActiveX控件将被禁用。多数环境下影响有限:
- MHTML主要通过后台机制使用,常规场景不受影响
- 不含脚本的MHT文件可正常显示
- 用户可通过信息栏临时允许协议执行(需手动操作)
服务端风险评估
任何允许用户输入反射回显的服务都可能受影响,实际风险取决于服务实现方式,其影响类似于服务端XSS漏洞但根源在客户端。
服务提供商建议方案
- 优先推荐客户端解决方案
- 服务端缓解方案(需谨慎评估):
- 过滤请求/响应中的换行符
- 在HTTP响应头前添加换行符
- 修改HTTP响应状态码
防护有效性验证
提供测试MHT文件样本,包含以下特征:
|
|
防护生效时,浏览器会显示协议锁定提示栏阻止脚本执行。
技术团队
- Dave Ross, MSRC工程团队
- Chengyun Chu, MSRC工程团队