IE XXE注入0 day漏洞
导语:研究人员发现IE浏览器存在XML External Entity (XXE)注入漏洞,攻击者可以利用该漏洞来窃取文件和系统信息。
概述
安全研究人员John Page近日发布了关于IE浏览器的可扩展标记语言XML(eXtensible Markup Language)外部实体(external entity)(XXE)注入0 day漏洞。攻击者可以利用该漏洞从受害者计算机中窃取机密信息或本地文件。下面分析如何利用该漏洞的攻击链。
XXE注入是利用了XML分析器的不合适的限制XML外部实体引用(CWE-611),用来访问非授权的内容。XXE注入利用了错误配置的文件类型定义(CWE-827),文件类型定义用来为描述xml这类标记语言的文件类型。比如,攻击者可以用含有外部实体引用的恶意XML文件,滥用file://协议来访问本地文件,或滥用http://来访问web服务器上的文件。
Page提到的IE XXE注入漏洞是在打开一个精心伪造的MIME HTML web档案(.mht)文件,用户与浏览器交互用 (Ctrl+K)或(Ctrl+P)时触发的。但是用户交互可以通过window.print()这样的JS函数来模拟。一旦用户打开了恶意.mht文件,攻击者就可以从用户系统中窃取文件。
但成功利用该漏洞需要高超的社会工程技术。比如,攻击者必须引诱用户下载恶意.mht文件并手动触发本地设置。
Microsoft在官方文档中给出的回应是IE本身不允许这类恶意行为。攻击者必须诱使或使用户通过社会工程方法来下载恶意文档,比如通过垃圾邮件附件或钓鱼攻击活动来触发下载。而且下载的文件必须用浏览器打开。
漏洞影响
成功利用该漏洞的攻击者可以获取用户系统上敏感文件的访问权限,也可以为进一步发起攻击提供监视信息。
XXE注入和攻击并不少见,但会引发许多安全风险。事实上,XXE攻击是OWASP中列出的主流软件和工具的主要威胁。攻击活动中滥用.mht文件作为攻击向量,也可能会被利用套件滥用来作为信息窃取器。
攻击链分析
为了成功利用该漏洞,恶意XML文件必须在攻击者的HTTP服务器上。XML文件必须在ENTITY tag中给出要从用户系统中窃取的文件,这在HTTP消息代表一个请求或响应。对应的文件需要在恶意MHTML文件中作为外部实体被引用,用户可以手动在计算机上执行。
图1. 指定了要从用户系统中提取的文件的恶意XML文件
攻击者必须诱使用户通过外部攻击向量来下载恶意MHTML文件,比如社会工程的垃圾邮件附件或钓鱼邮件。邮件客户端必须用IE来打开恶意文件。IE是所有Windows版本中打开MHTML文件的默认应用程序,所以用户不需要指定打开的应用程序。如图3所示,当恶意MHTML文件被打开后,有漏洞的IE客户端会向攻击者的服务器发送一个GET请求来提取恶意XML文件。
图2. 使用IE XXE漏洞来下载恶意XML文件的样本MHTML文件
图3. 从客户端发给攻击者服务器来获取恶意XML文件的请求包
如图1所示,恶意XML文件中含有要提取的文件的详情,以及攻击者控制的服务器的URI信息。攻击者在恶意XML文件中引用的文件的内容会发回给攻击者的服务器。
图4: 发送文件到攻击者服务器的请求包
安全建议
截止目前,微软还没有发布该漏洞的补丁。研究人员建议用户不要打开未知来源的文件,尽量不要从未来来源下载和打开文件,不要随意点击邮件中的链接。确保操作系统和应用程序更新到最新版本。系统管理员、开发人员也应该遵循预防XXE攻击的一些安全最佳实践。
发表评论