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

admin 2024年1月7日21:52:15评论67 views字数 624阅读2分4秒阅读模式
用友NC6.5 ModelHandleServlet.class 反序列化漏洞分析及复现

环境配置

l 系统:Winserver2008R2

l 数据库:Oracle11G

l JDK:java 1.7.0_51

l 复现版本:用友NC6.5

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

源码分析

Jar包所在目录为:

/yonyouNC/modules/aert/lib/pubaert_serviceLevel-1.jar!

类对应的路径为:

/uap/pub/ae/model/handle/ModelHandleServlet.class ,类方法代码如下图所示:

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

Service()方法中获取请求包的输入字节流并赋值给input,然后对其使用this.getRequestObj()方法。该方法代码如下图所示:

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

开始遍历输入字节流,一次读取1024字节,并写入ByteArrayOutputStream字节数组输出流缓冲区out中。读取结束后,进入if语句,进行字节类型的转换后,使用ois.readObject()对字节流进行反序列化,造成了反序列化漏洞。由于没有对用户输入的反序列化流进行校验,导致漏洞产生。

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

漏洞验证

构造URLDNS的数据包如下图所示,返回包为200:

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

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

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

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

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

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

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

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

扫码关注 了解更多内容

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

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

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

发表评论

匿名网友 填写信息