章节2:01-Java序列化和反序列化

news/2024/11/7 22:47:27/

章节2:01-Java序列化和反序列化

01-Java序列化和反序列化

基础环境

JDK解压版:包含Java运行时环境

IDEA:开发工具

Maven:jar包依赖管理

Tomcat:HTTP服务器

Burp Suite:发送HTTP请求

Kali:启动相关服务

01 序列化和反序列化的含义和用途

Java序列化和反序列化

在这里插入图片描述

序列化主要使用场景
  1. 持久化内存数据

  2. 网络传输对象

  3. 远程方法调用(RMI)

    ……

JSON格式

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

02 Java序列化演示

Java序列化和反序列化

Person对象,实现Serializable接口

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

序列化格式

参考:

https://docs.oracle.com/javase/8/docs/platform/serialization/spec/serialTOC.html

https://docs.oracle.com/javase/8/docs/platform/serialization/spec/protocol.html#a10258

Java序列化和反序列化

序列化

java.io.ObjectOutputStream.writeObject()

反序列化

java.io.ObjectInputStream.readObject()

03 反序列化漏洞的出现

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

自定义反序列化
  1. 重写类的readObject()方法
  2. 反序列过程中会执行自定义的readObject()
利用思路
  1. 利用自定义的readObject()方法执行代码
  2. 寻找重写了readObject()方法的类
利用

有没有重写了readObject()的现成的类?

package sun.reflect.annotation;

AnnotationInvocationHandler

package javax.management;

BadAttributeValueExpException

……


http://www.ppmy.cn/news/64120.html

相关文章

Django初识

1、简介 Django,是用python语言写的开源web开发框架,并遵循MVC设计。劳伦斯出版集团为了开发以新闻内容为主的网站,而开发出来了这个框架,于2005年7月在BSD许可证下发布。这个名称来源于比利时的爵士音乐家DjangoReinhardt&#…

CentOS7安装vsftpd

CentOS7安装vsftpd 最近又用到ftp了,摸索了一下终于安装成功,记录下安装过程,本次使用的操作系统为 CentOS7,ftp使用vsftpd。 安装vsftpd yum install -y vsftpd配置vsftpd vsftpd的配置文件路径为:/etc/vsftpd/vs…

天地气运流转,皆在五行生克中

在中国的传统文化里,常讲“气运”二字,把两字分开,便是气数与命运。 在现代人的观念里,气运是个复杂又抽象的概念。 天地五行之气轮流转,一切都在五行生克中。 而古人的方法,是通过五行的变化来描述气运的流…

leetcode 70.爬楼梯+209.长度最小的子数组

70. 爬楼梯 - 力扣(LeetCode) 题目: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例: 输入:n 3 输出:3 解释&#xff…

2023年第三届长三角高校数学建模竞赛】A 题 快递包裹装箱优化问题 详细数学建模过程

1 题目 2022 年,中国一年的包裹已经超过 1000 亿件,占据了全球快递事务量的一半以上。近几年,中国每年新增包裹数量相当于美国整个国家一年的包裹数量, 十年前中国还是物流成本最昂贵的国家,当前中国已经建立起全世界…

MySQL基础(十八)MySQL8其它新特性

1. MySQL8新特性概述 MySQL从5.7版本直接跳跃发布了8.0版本,可见这是一个令人兴奋的里程碑版本。MySQL 8版本在功能上做了显著的改进与增强,开发者对MySQL的源代码进行了重构,最突出的一点是MySQL Optimizer优化器进行了改进。不仅在速度上得…

前端CSS学习(二)

1、选择器进阶 1.1 后代选择器:空格 作用:根据HTML标签的嵌套关系,选择父元素后代中满足条件的元素 选择器语法:选择器1 选择器2 { css } 结果:在选择器1所找到标签的后代(儿子、孙子、重孙...)中,找到满足选择器2的…

聊聊Doris向量化执行引擎-过滤操作

聊聊Doris向量化执行引擎-过滤操作 Doris是开源的新一代极速MPP数据库,和StarRocks同源,采用全面向量化技术,充分利用CPU单核资源,将单核执行性能做到极致。本文,我们聊聊过滤操作是如何利用SIMD指令进行向量化操作。 …