WECON LeviStudioU軟體XXE漏洞分析

WECON LeviStudioU軟體XXE漏洞分析

1、概述

福州富昌維控(WECON)電子科技有限公司是一家專業從事自動化領域產品研究、開發與銷售的高科技公司,公司生產工業網際網路網關、工業人機介面和通用型PLC等產品,WECON LeviStudio是一套人機介面編程軟體,經過研究,我司發現了該軟體的某些版本中存在緩衝區溢出、XXE等漏洞。2020年12月初ICS-CERT對漏洞信息進行更新和紕漏,本文章對其中的一個XXE漏洞進行分析和復現。

WECON LeviStudioU軟體XXE漏洞分析

2、XXE注入

XXE Injection即XML External Entity Injection,也就是XML外部實體注入攻擊,漏洞是在對非安全的外部實體數據進⾏行處理時引發的安全問題。

在XML1.0標準里,XML文檔結構中定義了實體(entity)這個概念,實體可以通過預定義在文檔中調用,實體的標識符可訪問本地或遠程內容。如果在這個過程中引入了」污染」源,在對XML文檔處理後則可能導致信息泄漏等安全問題。

XML大家再熟悉不過了,XML是用於標記電子文件使其具有結構性的標記語言,可以用來標記數據、定義數據類型,是一種允許用戶對自己的標記語言進行定義的源語言。XML文檔結構包括XML聲明、DTD文檔類型定義(可選)、文檔元素。

WECON LeviStudioU軟體XXE漏洞分析

其中,DTD實體是用於定義引用普通文本或特殊字符的快捷方式的變量,可以內部聲明或外部引用。當允許引用外部實體時,通過構造惡意內容,可導致讀取任意文件、執行系統命令、探測內網埠、攻擊內網網站等危害。

3、漏洞復現

從ICS-CERT網站發佈的漏洞信息可知,存在漏洞的軟體版本為:build 2019-09-21及其之前的build,安裝對應的軟體版本,打開運行即可:

WECON LeviStudioU軟體XXE漏洞分析

軟體存的XXE漏洞存在於程序處理UMP格式的工程文件過程中,未對外部實體解析進行適當限制和處理,由此可導致敏感信息泄露。

觸發此漏洞,第一步需要一個相關的工程文件,工程文件可以通過創建工程來獲得:

WECON LeviStudioU軟體XXE漏洞分析

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

WECON LeviStudioU軟體XXE漏洞分析

任意挑選一個demo工程,打開可以看到.ump的文件:

WECON LeviStudioU軟體XXE漏洞分析

此處需要著重分析UMP文件,打開此文件可發現其實質為一個XML格式的文件,那麼XXE是不是就有機會了呢?

WECON LeviStudioU軟體XXE漏洞分析

使用軟體打開此工程,即可推測UMP文件實質為對各個頁面、元素屬性的定義:

WECON LeviStudioU軟體XXE漏洞分析

接下來就需要創建XXE的payload,插入到UMP文件中進行嘗試了。使用最常用的payload:

WECON LeviStudioU軟體XXE漏洞分析

WECON LeviStudioU軟體XXE漏洞分析

注意,上述IP位址需要更換為攻擊機的IP,XXE.txt為靶機中實際存在的一個樣例文件:

WECON LeviStudioU軟體XXE漏洞分析

在攻擊機中使用 Python 搭建簡易 HTTP Server:

WECON LeviStudioU軟體XXE漏洞分析

在把靶機中,使用軟體打開被XXE注入的工程文件:

WECON LeviStudioU軟體XXE漏洞分析

發現工程打開報錯,難道此路不通?實際上漏洞已經利用成功:C:\XXE.txt中的內容已經返回到攻擊機的HTTP Server中:

WECON LeviStudioU軟體XXE漏洞分析

由此XXE漏洞復現成功。

參考資料:

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

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

來源:kknewsWECON LeviStudioU軟體XXE漏洞分析