环境配置
l 系统:Winserver2008R2
l 数据库:Oracle11G
l JDK:java 1.7.0_51
l 复现版本:用友NC6.5
源码分析
Jar包所在目录为:
/yonyouNC/modules/aert/lib/pubaert_serviceLevel-1.jar!
类对应的路径为:
/uap/pub/ae/model/handle/ModelHandleServlet.class ,类方法代码如下图所示:
Service()方法中获取请求包的输入字节流并赋值给input,然后对其使用this.getRequestObj()方法。该方法代码如下图所示:
开始遍历输入字节流,一次读取1024字节,并写入ByteArrayOutputStream字节数组输出流缓冲区out中。读取结束后,进入if语句,进行字节类型的转换后,使用ois.readObject()对字节流进行反序列化,造成了反序列化漏洞。由于没有对用户输入的反序列化流进行校验,导致漏洞产生。
漏洞验证
构造URLDNS的数据包如下图所示,返回包为200:
发送数据包,即可看到DNS页面有回显,验证了此处有反序列化漏洞存在。
构造对应CC链的数据包如下图所示:
发送构造好的数据包,在系统环境中弹出了计算机,成功的执行系统命令。
公众号:
刑天攻防实验室
扫码关注 了解更多内容
原文始发于微信公众号(刑天攻防实验室):用友NC6.5 ModelHandleServlet.class 反序列化漏洞分析及复现
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论