目录 0 前言 1 Dubbo的协议设计 2 Dubbo中的kryo序列化协议触发点 3 Dubbo中的fst序列化协议触发点 3.1 fst复现 3. 2 思路梳理 4 总结 0 前言 本篇是Dubbo反序列化安全问题的学习和研究第二篇,来看看Dubbo2.x下,由于dubbo的数据包协议设计安全问题,导致攻击者可以选定危险的反序列化协议从而实现RCE,复现漏洞为CVE-2021-45641 Apache Dubbo协议绕过漏洞 1 Dubbo的协议设计 由于Dubbo可以支持很多类型的反序列…
0 前言 本篇是系列文章的第一篇,主要看看Dubbo使用反序列化协议Hessian2时,存在的安全问题.文章需要RPC.Dubbo.反序列化等前提知识点,推荐先阅读和体验Dubbo以及反序列化漏洞. Dubbo源码分析 RPC框架dubbo架构原理及使用说明 RPC 框架 Dubbo 从理解到使用(一) [RPC 框架 Dubbo 从理解到使用(二) 1 反序列化协议-Hessian2 hessian2是由caucho开发的基于Binary-RPC协议实现的远程通讯库,知名Web容器Resin的…
在Dubbo中使用高效的Java序列化(Kryo和FST) 作者:沈理 文档版权:Creative Commons 3.0许可证 署名-禁止演绎 完善中…… TODO 生成可点击的目录 目录 序列化漫谈 启用Kryo和FST 注册被序列化类 无参构造函数和Serializable接口 序列化性能分析与测试 测试环境 测试脚本 Dubbo RPC中不同序列化生成字节大小比较 Dubbo RPC中不同序列化响应时间和吞吐量对比 未来 序列化漫谈 dubbo RPC是dubbo体系中最核心的一种高性能…
 我们为什么要序列化 举个栗子:下雨天我们要打伞,但是之后我们要把伞折叠起来,方便我们存放.那么运用到我们java中道理是一样的,我们要将数据分解成字节流,以便存储在文件中或在网络上传输,这叫序列化.我们要用的时候,就需要将字节流重构成对象,这叫反序列化.不知道我这么说大家能不能理解. java序列化的缺点 java自己提供序列化而且用起来也非常简单,但是在远程服务调用中很少用它,主要存在以下缺点: 1.无法跨语言.这应该是java序列化最致命的问题了.由于java序列化是java内部私有的…
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序列化:把字节序列恢复为对象的过程称为对象的反序列化. 需要序列化的情况: 当你想把的内存中的对象状态保存到一个文件中或者数据库中时候: 当你想用套接字在网络上传送对象的时候: 当你想通过RMI传输对象的时候: Kryo 是一个快速高效的Java对象图形序列化框架,主要特点是性能.高效和易用.该项目用来序列化对象到文件.数据库或者网络. 序列化工具类 package com.ai.toptea.itsm.imp.util; import o…
前言:kryo是个高效的java序列化/反序列化库,目前Twitter.yahoo.Apache.strom等等在使用该技术,比如Apache的spark.hive等大数据领域用的较多. 为什么使用kryo而不是其他? 因为性能足够好.比kyro更高效的序列化库就只有google的protobuf了(而且两者性能很接近),protobuf有个缺点就是要传输的每一个类的结构都要生成对应的proto文件(也可以都放在同一个proto文件中,如果考虑到扩展性的话,不建议放在一个proto文件中),如果…
一.实验简介 实验所属系列: 系统安全 实验对象:本科/专科信息安全专业 相关课程及专业: 计算机网络 实验时数(学分):2 学时 实验类别: 实践实验类 二.实验目的 Apache Dubbo是一款高性能.轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现.本实验详细介绍了有关的系统知识和分析该漏洞原因并复现该漏洞.通过该实验了解该漏洞,并利用该实验了解.基本掌握漏洞环境搭建技巧,通过复现该漏洞,了解工具的一些知识. 三.…
Dubbo3开题简介 如开篇所述,Dubbo 提供了构建云原生微服务业务的一站式解决方案,可以使用 Dubbo 快速定义并发布微服务组 件,同时基于 Dubbo 开箱即用的丰富特性及超强的扩展能力,构建运维整个微服务体系所需的各项服务治理能力, 如 Tracing.Transaction 等,Dubbo 提供的基础能力包括如下. Dubbo3 基于 Dubbo2 演进而来,在保持原有核心功能特性的同时, Dubbo3 在易用性.超大规模微服务实践.云 原生基础设施适配等几大方向上进行了全面升级.…
Dubbo+Kryo实现高速序列化 Dubbo RPC是Dubbo体系中最核心的一种高性能,高吞吐量的远程调用方式,是一种多路复用的TCP长连接调用: 长连接: 避免每次调用新建TCP连接,提高调用的响应速度 多路复用: 单个TCP连接可交替传输多个请求和响应的消息,降低了连接的等待时间,从而减少了同样并发数的情况下网络连接数,提高了系统的云吞吐量 Dubbo RPC主要用于两个Dubbo之间的远程调用,适合高并发,小数据的互联网场景.序列化对于远程调用的响应速度,吞吐量,网络带宽消耗等同样也起…
Dubbo 中的序列化 Dubbo RPC 是 Dubbo 体系中最核心的一种高性能.高吞吐量的远程调用方式,可以称之为多路复用的 TCP 长连接调用: 长连接:避免了每次调用新建 TCP 连接,提高了调用的响应速度 多路复用:单个 TCP 连接可交替传输多个请求和响应的消息,降低了连接的等待闲置时间,从而减少了同样并发数下的网络连接数,提高了系统吞吐量 Dubbo RPC 主要用于两个 Dubbo 系统之间的远程调用,特别适合高并发.小数据的互联网场景.而序列化对于远程调用的响应速度.吞吐量.…