Java审计之CMS中的那些反序列化漏洞

admin 2023年10月17日13:54:49评论107 views字数 1708阅读5分41秒阅读模式

过年那段时间比较无聊,找了一套源码审计了一下,发现几个有意思的点拿出来给分享一下。

XStream 反序列化漏洞

下载源码下来发现并不是源代码,而是一个的文件夹,里面都已经是编译过的一个个 class 文件。

在一个微信回调的路由位置里面找到通过搜索类名 Serialize 关键字找到了一个工具类,并且参数是可控的。

Java审计之CMS中的那些反序列化漏洞

Java审计之CMS中的那些反序列化漏洞

Java审计之CMS中的那些反序列化漏洞

Java审计之CMS中的那些反序列化漏洞

这里调用 xstream.fromXML(xml) 进行反序列化

而下面这个看了一下 lib 文件夹下面的组件其实是有着 cc cb 等组件,并且这个组件的反序列化漏洞是在版本范围内。

Java审计之CMS中的那些反序列化漏洞

找到路由位置,发现访问页面的时候显示 API 什么的错误。POC 打过去没有任何响应。这个点弄了比较久没弄出来,暂且留着。

Shiro反序列化漏洞

上次的点没弄出来后,开始转换思路。再次从 web.xml 入手

Java审计之CMS中的那些反序列化漏洞

发现这里加载了一下配置文件,从中还发现了 shiro 的配置文件,前面还真没注意到。

Java审计之CMS中的那些反序列化漏洞

并且在 lib 的组件找到了这个 shiro 组件,但是发现这个是 1.3 版本的。而 shiro 550 漏洞的版本是在 1.2.4,但是问题就来了,不在漏洞版本内就是不能打了嘛?其实不是的。

Shiro 1.2.4 及之前的版本中,AES 加密的密钥默认硬编码在代码里(SHIRO-550),Shiro 1.2.4 以上版本官方移除了代码中的默认密钥,要求开发者自己设置,如果开发者没有设置,则默认动态生成,降低了固定密钥泄漏的风险。

回头再来看看 shiro550 的细节

Java审计之CMS中的那些反序列化漏洞

这里 key 是定义在代码里面的,定义死的。

但是只要能找到他配置的密钥就能伪造 Shiro 的加密流程发送 gadget 进行反序列化,从而达到命令执行。

这里找到 web.xml 加载的这个配置文件翻找了一下还真找到了密钥。这里密钥配置的不是随机密钥。

Java审计之CMS中的那些反序列化漏洞

那么这里还需要找的一点是漏洞地址在哪里,也就是 shiro 作用于哪个地方,一般使用 shiro 都是将这些东西托管给 shiro 做权限控制,而在做权限控制的时候同时也需要配置到一些后台的登录地址,这里是从配置文件上方找到了这个地址。

Java审计之CMS中的那些反序列化漏洞

配置对应的 key 值拿到工具里面跑一下

Java审计之CMS中的那些反序列化漏洞

以上是 xml 文件的配置方式的审计方法,当然部分 cms 也会采用一个 config 类来进行配置。同理还是找到配置类然后看密钥

Java审计之CMS中的那些反序列化漏洞

这里 Config 配置 Shiro 的本地没环境,找了一个网上的图

漏洞修复

其实修复起来也很简单,只需要使用随机密钥就好了。

<bean id="rememberMeManager" class="org.apache.shiro.web.mgt.CookieRememberMeManager">
    <property name="cipherKey" value="#{T(com.nova.framework.modules.sys.security.GenerateCipherKey).generateNewKey()}"></property>
</bean>

结尾

整体的其实还是比较简单,但是在 XStream 这个洞里面远程调试的环境不知道为啥一直搭不好,不知道是环境问题还是啥,断点停不下来。总的来说其实还是有源代码审起来舒服,环境只要一搭建好就能本地调试下断点。


Java审计之CMS中的那些反序列化漏洞

关注公众号后台回复 0001 领取域渗透思维导图,0002 领取VMware 17永久激活码,0003 获取SGK地址,0004 获取在线ChatGPT地址,0005 获取 Windows10渗透集成环境0006 获取 CobaltStrike 4.9破解版


加我微信好友,邀请你进交流群


Java审计之CMS中的那些反序列化漏洞




往期推荐



日常记录对某站点的实战渗透

Subconverter订阅转换RCE漏洞

D-Link DAP-X1860:远程命令注入

国产之光IDE,自带国产特色VIP功能!

JeecgBoot SSTI以及JDBC RCE 复现

善攻者,动于九天之上。善守者,藏于九地之下!

谈一谈我是如何入门安全的,七年安全生涯总结

某CDN疑似被投毒!

RdViewer远控隐蔽利用及钓鱼攻击

备用号,欢迎关注


Java审计之CMS中的那些反序列化漏洞

原文始发于微信公众号(刨洞安全团队):Java审计之CMS中的那些反序列化漏洞

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年10月17日13:54:49
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Java审计之CMS中的那些反序列化漏洞http://cn-sec.com/archives/2116363.html

发表评论

匿名网友 填写信息