用友NC6.5 accept.jsp 任意文件上传漏洞分析及复现

admin 2023年11月6日12:46:21评论43 views字数 716阅读2分23秒阅读模式
用友NC6.5 accept.jsp 任意文件上传漏洞分析及复现

环境配置

l 系统:Winserver2008

l 数据库:Oracle11G

l JDK:java 1.7.0_51

l 复现版本:用友NC6.5

用友NC6.5 accept.jsp 任意文件上传漏洞分析及复现

源码分析

接口对应的路径为:

/yonyou/hotwebs/aim/equipmap/accept.jsp,

接口页面方法代码如下图所示:

用友NC6.5 accept.jsp 任意文件上传漏洞分析及复现

先是创建了SmartUpload对象,设置上传的限制,然后调用su.upload()方法来上传文件,该方法详细代码如下图所示:

用友NC6.5 accept.jsp 任意文件上传漏洞分析及复现

通过输入流将请求体中的数据字节读入this.m_binArray数组。

用友NC6.5 accept.jsp 任意文件上传漏洞分析及复现

调用this.getDataHeader()方法把请求体的字节数组转换为字符串,然后获取一些参数,方便后面对该文件进行基础设置。

用友NC6.5 accept.jsp 任意文件上传漏洞分析及复现

对文件初始化设置后,第170行代码处,把该文件添加到hash表this.m_files。upload文件上传方法到这里结束。接着继续accept.jsp接口往下看。

用友NC6.5 accept.jsp 任意文件上传漏洞分析及复现

上传完文件后,创建SmartFiles对象接收上传的文件列表。从上传请求包中获取“fname”参数值,随后遍历文件列表。如果文件没有丢失,则调用file.saveAs()方法将文件保存到系统,该方法详细代码如下图所示:

用友NC6.5 accept.jsp 任意文件上传漏洞分析及复现

根据方法形参获取物理路径,如果不为空,则创建File文件对象,并通过文件流的方式将文件内容写入该文件。

分析过程中,并没有看到对文件上传的内容以及文件名做任何限制,因此通过这个漏洞实现在任意目录下写入任意内容的文件。

用友NC6.5 accept.jsp 任意文件上传漏洞分析及复现

漏洞验证

构造的数据包如下图所示:

用友NC6.5 accept.jsp 任意文件上传漏洞分析及复现

发送数据包,即可在相应路径下看到该文件如下图所示:

用友NC6.5 accept.jsp 任意文件上传漏洞分析及复现

蚁剑连接成功如下图所示:

用友NC6.5 accept.jsp 任意文件上传漏洞分析及复现

用友NC6.5 accept.jsp 任意文件上传漏洞分析及复现

用友NC6.5 accept.jsp 任意文件上传漏洞分析及复现
公众号:
刑天攻防实验室

扫码关注 了解更多内容

用友NC6.5 accept.jsp 任意文件上传漏洞分析及复现

原文始发于微信公众号(刑天攻防实验室):用友NC6.5 accept.jsp 任意文件上传漏洞分析及复现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年11月6日12:46:21
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   用友NC6.5 accept.jsp 任意文件上传漏洞分析及复现http://cn-sec.com/archives/2180102.html

发表评论

匿名网友 填写信息