雷石|用友NC-ActionHandlerServlet反序列化漏洞分析
2023-8-18 12:4:12 Author: 雷石安全实验室(查看原文) 阅读量:88 收藏

前言

用友NC被披露过很多漏洞,其中反序列化漏洞尤为多。很多的接口都存在反序列化漏洞,网上披露的漏洞信息却很模糊。当自己把这些漏洞整合成工具时发现很多漏洞复现失败,只得回过头动手分析一探究竟。

01.

分析

通过公开信息得知,用友NC 的ActionHandlerServlet接口存在反序列化漏洞。受影响的版本有NC6.3、NC6.5。

凭借此前对用友NC的历史反序列化漏洞了解,大多接口都是直接反序列化。便用同样方法测试,结果都是失败。

正好本地搭建有环境,那便直接找文件看源码。

已经知道了接口,通过接口 ActionHandlerServlet 找到对应的类。

如下:


这⾥有三个⽅法,post和get接收到请求后调⽤了process()。

查看process(),可以看到34⾏,将接收到的请求先⽤GZIPInputStream进⾏了Gzip解压缩。


然后紧接着就进⾏了反序列化,造成了反序列化漏洞。

看了代码得知:该接⼝请求的的序列化数据需要进⾏gzip压缩。

复现

02.

发dnslog回显

写⽂件

03.

poc编写问题

在编写poc,对序列化数据进⾏gzip压缩时,出现了问题。

通过gzip库压缩后的数据与burp编码后的结果不同

原始序列化数据


⽤burp进⾏gzip解压看到的序列化数据 \xff变为了\xc3\xbf


说明序列化数据经过gzip压缩时数据被改变了。

utf-8编码问题

经过查阅资料,找到⼀些信息,发现是UTF-8编码的问题:

1.字节FF和FE在UTF-8编码中永远不会出现;

2.UTF-8是⼀种变⻓编码;

修改编码为“ASCII”,问题解决。




往期回顾

01

一例ReactNative App分析

02

心得分享之PWN的ROP构造

03

yonyouNC命令执行Bypass测试分享

雷石安全实验室

商务咨询:

0571-87031601

商务邮箱:

[email protected]


文章来源: http://mp.weixin.qq.com/s?__biz=MzI5MDE0MjQ1NQ==&mid=2247525821&idx=1&sn=0322446f15855537643c9d52362bd1fd&chksm=ec264425db51cd335421e1cab38319a9d3cbe515686e49d4be3be2edc288dec90a6855d8a1ae&scene=0&xtrack=1#rd
如有侵权请联系:admin#unsafe.sh