环境配置
l 系统:Winserver2008R
l 数据库:Oracle11G
l JDK:java 1.7.0_51
l 复现版本:用友NC6.5
源码分析
Jar包所在目录为:
/yonyouNC6.5/modules/uapxbrl/META-INF/lib/uapxbrl_uapxbrlLevel-1.jar!
类对应的路径为:
/uap/xbrl/persistenceImpl/XbrlPersistenceServlet.class ,类方法代码如下图所示:
可以看到无论是Get方法和Post方法都调用了this.doAction(),追踪进去看看。doAction()方法代码如下图所示:
通过readObject进行反序列化后,将反序列化后的结果转换为HashMap类型,其中HashMap的键为String、值为String。再获取headInfo的“action”属性,后续根据该值进入相应的分支执行对应的方法。
readObject()代码如下图所示:
虽然是重写的,但是具体方法实现是一样的。可以试着去找漏洞利用链。
漏洞验证
构造URLDNS链的数据包如下图所示:
发送数据包,即可看到DNS页面有回显,验证了此处有反序列化漏洞存在。
构造对应CC链的数据包如下图所示:
发送数据包,在系统环境中弹出了计算机,成功执行命令。
公众号:
刑天攻防实验室
扫码关注 了解更多内容
原文始发于微信公众号(刑天攻防实验室):用友NC6.5 XbrlPersistenceServlet.class 反序列化漏洞分析及复现
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论