WECON LeviStudioU软件XXE漏洞分析

 

1、概述

福州富昌维控(WECON)电子科技有限公司是一家专业从事自动化领域产品研究、开发与销售的高科技公司,公司生产工业互联网网关、工业人机界面和通用型PLC等产品,WECON LeviStudio是一套人机界面编程软件,经过研究,我司发现了该软件的某些版本中存在缓冲区溢出、XXE等漏洞。202012月初ICS-CERT对漏洞信息进行更新和纰漏,本文章对其中的一个XXE漏洞进行分析和复现。

 

2、XXE注入

XXE InjectionXML External Entity Injection,也就是XML外部实体注入攻击,漏洞是在对非安全的外部实体数据进⾏行处理时引发的安全问题。

XML1.0标准里,XML文档结构中定义了实体(entity)这个概念,实体可以通过预定义在文档中调用,实体的标识符可访问本地或远程内容。如果在这个过程中引入了污染源,在对XML文档处理后则可能导致信息泄漏等安全问题。

XML大家再熟悉不过了,XML是用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素。

其中,DTD实体是用于定义引用普通文本或特殊字符的快捷方式的变量,可以内部声明或外部引用。当允许引用外部实体时,通过构造恶意内容,可导致读取任意文件、执行系统命令、探测内网端口、攻击内网网站等危害。

 

3、漏洞复现

ICS-CERT网站发布的漏洞信息可知,存在漏洞的软件版本为:Build 2019-09-21及其之前的build,安装对应的软件版本,打开运行即可:

软件存的XXE漏洞存在于程序处理UMP格式的工程文件过程中,未对外部实体解析进行适当限制和处理,由此可导致敏感信息泄露。

触发此漏洞,第一步需要一个相关的工程文件,工程文件可以通过创建工程来获得:

或者直接使用程序自带的demo工程:

任意挑选一个demo工程,打开可以看到.ump的文件:

此处需要着重分析UMP文件,打开此文件可发现其实质为一个XML格式的文件,那么XXE是不是就有机会了呢?

使用软件打开此工程,即可推测UMP文件实质为对各个页面、元素属性的定义:

接下来就需要创建XXEpayload,插入到UMP文件中进行尝试了。使用最常用的payload

注意,上述IP地址需要更换为攻击机的IPXXE.txt为靶机中实际存在的一个样例文件:

在攻击机中使用 Python 搭建简易 HTTP Server

在把靶机中,使用软件打开被XXE注入的工程文件:

发现工程打开报错,难道此路不通?实际上漏洞已经利用成功:C:\XXE.txt中的内容已经返回到攻击机的HTTP Server中:

由此XXE漏洞复现成功。

参考资料:

[1] https://us-cert.cisa.gov/ics/advisories/icsa-20-238-03

[2] https://www.vsecurity.com//download/papers/XMLDTDEntityAttacks.pdf

(完)