用友NC6.5 XbrlPersistenceServlet.class 反序列化漏洞分析及复现

admin 2023年11月22日20:36:06评论102 views字数 642阅读2分8秒阅读模式
用友NC6.5 XbrlPersistenceServlet.class 反序列化漏洞分析及复现

环境配置

l 系统:Winserver2008R

l 数据库:Oracle11G

l JDK:java 1.7.0_51

l 复现版本:用友NC6.5

用友NC6.5 XbrlPersistenceServlet.class 反序列化漏洞分析及复现

源码分析

Jar包所在目录为:

/yonyouNC6.5/modules/uapxbrl/META-INF/lib/uapxbrl_uapxbrlLevel-1.jar!

类对应的路径为:

/uap/xbrl/persistenceImpl/XbrlPersistenceServlet.class ,类方法代码如下图所示:

用友NC6.5 XbrlPersistenceServlet.class 反序列化漏洞分析及复现

可以看到无论是Get方法和Post方法都调用了this.doAction(),追踪进去看看。doAction()方法代码如下图所示:

用友NC6.5 XbrlPersistenceServlet.class 反序列化漏洞分析及复现

通过readObject进行反序列化后,将反序列化后的结果转换为HashMap类型,其中HashMap的键为String、值为String。再获取headInfo的“action”属性,后续根据该值进入相应的分支执行对应的方法。

readObject()代码如下图所示:

用友NC6.5 XbrlPersistenceServlet.class 反序列化漏洞分析及复现

虽然是重写的,但是具体方法实现是一样的。可以试着去找漏洞利用链。

用友NC6.5 XbrlPersistenceServlet.class 反序列化漏洞分析及复现

漏洞验证

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

用友NC6.5 XbrlPersistenceServlet.class 反序列化漏洞分析及复现

发送数据包,即可看到DNS页面有回显,验证了此处有反序列化漏洞存在。

用友NC6.5 XbrlPersistenceServlet.class 反序列化漏洞分析及复现

构造对应CC链的数据包如下图所示:

用友NC6.5 XbrlPersistenceServlet.class 反序列化漏洞分析及复现

发送数据包,在系统环境中弹出了计算机,成功执行命令。

用友NC6.5 XbrlPersistenceServlet.class 反序列化漏洞分析及复现
用友NC6.5 XbrlPersistenceServlet.class 反序列化漏洞分析及复现

用友NC6.5 XbrlPersistenceServlet.class 反序列化漏洞分析及复现
公众号:
刑天攻防实验室

扫码关注 了解更多内容

用友NC6.5 XbrlPersistenceServlet.class 反序列化漏洞分析及复现

原文始发于微信公众号(刑天攻防实验室):用友NC6.5 XbrlPersistenceServlet.class 反序列化漏洞分析及复现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年11月22日20:36:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   用友NC6.5 XbrlPersistenceServlet.class 反序列化漏洞分析及复现http://cn-sec.com/archives/2229300.html

发表评论

匿名网友 填写信息