用友NC反序列化漏洞简单记录(DeleteServlet、XbrlPersistenceServlet等)

0x1题记

喜迎新年,后面打算对出来的漏洞进行分析下,先是分析过的NC,直接把以前的记录贴上来,NC反序列化其实去年就有rce接口了,这次这个只是换了个接口,漏洞原理一样,这样的接口以前分析的时候发现有挺多的。

0x2分析

nc这个除了反序列化还有其他的利用,如JNDI、文件上传等。
先从接口入手,最开始的接口应该是/servlet/~ufofr/DeleteServlet,把nc源码下下来,再去搜集下NC目录和配置文件的信息如下


image.png

image.png

这里可以看到,有个accessProtected设置为false的话不会进行token验证,可以直接访问到。
找到DeleteServlet的配置文件,可以看到类名。


image.png

通过类目去jar包中找到对应的实现代码,可以直接的看到调用了readObect,内容可控,post直接传
image.png

并且配置文件的accessProtected为false,能直接访问,接下来就只需要一条能执行命令的利用链。可以看到nc的jar里有commons-collections,啊这。直接用ysoserial就成了。
image.png

RCE接口如DeleteServlet、XbrlPersistenceServlet等基本都是这个原理。

0x3回显

回显的话有些接口是有response的(UploadServlet、DeleteSerlvet等),这样直接把执行的结果通过异常抛出。


image.png
image.png

0x4利用

网上的工具也挺多的,这里就直接burp插件发送序列化数据来打吧。


image.png

0x5补充

/servlet//~ic/bsh.servlet.BshServlet
这个接口访问可以直接执行命令(应该一定版本的才有,之前遇见过没有的情况)、泛微之前也有个这个功能

你可能感兴趣的:(用友NC反序列化漏洞简单记录(DeleteServlet、XbrlPersistenceServlet等))