JNDI注入的一种新攻击面-CVE-2024-20931分析

这篇文章详细分析了OracleWeblogic中CVE-2024-20931漏洞,涉及基于T3/IIOP协议的远程命令执行,通过ForeignOpaqueReference进行JNDI注入。作者讨论了漏洞利用步骤,以及Oracle的补丁策略,并揭示了绕过补丁的新方法——二次JNDI注入。
摘要由CSDN通过智能技术生成

在Oracle官方最新发布的January 2024补丁中,修复了一个基于Weblogic T3\IIOP协议的远程命令执行漏洞CVE-2024-20931,该漏洞由亿格云安全研究员Glassy在2023年10月提交给Oracle,从原理上属于CVE-2023-21839补丁的绕过,其中涉及到一个JNDI的新攻击面,在这里分享出来。

漏洞分析

01

CVE-2023-21839概述

当Weblogic通过T3\IIOP进行绑定的远程对象实现了OpaqueReference接口,那么在对该对象进行lookup时,会调用这个对象的getReferent函数进行查询。

图片

而碰巧有一个名为ForeignOpaqueReference的对象,它的getReferent函数在进行远程对象查询的时候,会再次发起JNDI查询,从而造成了JNDI注入。

图片

利用步骤大致分为三步

(关键步骤均用红框进行了标记)

Step1

建立一个恶意ForeignOpaqueReference对象,并将remoteJNDIName设置为远程恶意JNDI服务。

Step2

通过T3\IIOP协议在WLS上绑定该恶意对象。

Step3

通过lookup查询该恶意对象,触发

ForeignOpaqueReference.getReferent的调用,从而造成恶意JNDI注入。

图片

02

CVE-2023-21839补丁分析

Oracle官方于January 2023对该漏洞进行了修复,补丁内容分为两部分:

第一部分,限制了绑定ForeignOpaqueReference对象时对jndiEnvironment中providerURL的设置。

图片

第二部分对loopup的JNDI链接的协议也做了比较严格的限制。

图片

直观上去看,想继续通过ForeignOpaqueReference去做JNDI注入的路已经被堵死了。

03

CVE-2024-20931的挖掘

经过一定的分析,可以感觉到,现在有三条路是可能走的通的:

第一条路

寻找别的实现OpaqueReference接口的类的getReferent寻求突破(比较有意思的是ForeignOpaqueReference在两个package链接下都有,且代码有一些细微的差别)。

这条路有一定的可行性,但是要分析的类太多了,所以我没有做太深入的分享。

第二条路

尝试绕过补丁中的JNDIUtils.isValidJndiScheme函数。

图片

做了一定的努力,最终未能成功。

第三条路

如果在java.naming.provider.url为空的情况下,寻求一下代码执行的可能性。

图片

因为别的env还是可以控制的,所以或许能在指定java.naming.factory.initial进行初始化的时候,创造可能性,非常幸运的是,WLS提供了不少的InitialContextFactory,而恰恰就有一个AQjmsInitialContextFactory在初始化的时候,需要通过JNDI去获取远程的DataSource。

图片

通过AQjmsInitialContextFactory初始化发起的JNDI注入,就成功达成一种二次JNDI注入,实现了远程的RCE。

总结

这个漏洞相比于之前的JNDI注入,不是在lookup这个JNDI注入的关键函数上寻求突破,而是把关注点侧重于Context的初始化阶段,从而绕过了上一个漏洞的补丁,个人感觉还是比较有意思的一个漏洞,Oracle在后续的补丁中又对java.naming.factory.initial的设置做了验签处理,毫无疑问,还是有一些jndiEnvironment可以进行设置的,至于能不能去找到新的绕过,则需要更深一步的研究。

图片

学习计划安排


我一共划分了六个阶段,但并不是说你得学完全部才能上手工作,对于一些初级岗位,学到第三四个阶段就足矣~

这里我整合并且整理成了一份【282G】的网络安全从零基础入门到进阶资料包,需要的小伙伴可以扫描下方CSDN官方合作二维码免费领取哦,无偿分享!!!

如果你对网络安全入门感兴趣,那么你需要的话可以

点击这里👉【整整282G!】网络安全&黑客技术小白到大神全套资料,免费分享!

①网络安全学习路线
②上百份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥HW护网行动经验总结
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网安导师小李

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值