JAVA反序列化漏洞

news2024/7/6 18:24:16

JAVA反序列化漏洞

原文资料:xiu–》xiu博客

文章目录

    • JAVA反序列化漏洞
    • idea
      • 类继承
      • 反序列化漏洞
        • person类
        • Test类
      • 什么是反序列化漏洞

idea

在这里插入图片描述

类继承

public class Person {
    public int age;
    public String name;
    public void talk(){
    System.out.println("Person 说话了");
}
public class Student extends Person{
    public int score;
    public void talk(){
    System.out.println("Student说话了");
}
public class Test {
    public static void main (String[] args) {
    Student stul = new Student();
    stul.talk();
}

数据前五个字节

rO0AB java序列化base64编码数据

aced 16进制java序列化

序列化:
ObjectOutputStream --> writeObject()
反序列化: 
ObjectInputStream --> readObject()  

反序列化漏洞

person类
import java.io.I0Exception;
import java.io.0bjectInputStream;
import java.io.Serializable;

public classPerson implements Serializable {

    public int age;
    public String name;
    private void readobject (ObjectInputStream in)throws IOException, ClassNotFoundException {

    Runtime.getRuntime().exec("calc");
    // 默认的反序列化操作
    in.defaultReadObject();
    }
}
Test类
import java.io.*;

public class Test {
    public static void main (String[] args) throws IOException,  ClassNotFoundException {
   
        Person p=new Person();
        p.age=18;
        p.name="xiu";
        serialize (p,"xiu.bin");
        System.out.println("反序列化结果:"+
        deserialize("xiu.bin"));
     }
     
    public static void serialize (Object obj, string filePath) throws IOException {
    
        try ( FileOutputStream file0ut = new File0utputStream(filePath);
        	  Object0utputStream objectOut = new Object0utputStream(fileOut)
        	){ objectOut.write0bject(obj);}
    }
    
    public static Object deserialize(String filePath) throws IOException, ClassNotFoundException {
    try (FileInputstream fileIn = new FileInputstream(filePath);
        ObjectInputstream objectIn = new ObjectInputstream(fileIn)) {
            return objectIn.read0bject();
        }
    }
}

什么是反序列化漏洞

PHP的反序列化和java的反序列化是两种不同的类型,序列化和反序列化本身没有漏洞点,只是为了实现数据的完整高效的传输,

PHP反序列漏洞是由于类里面的魔术方法调用了某个函数,该危险函数又调用了别的函数,最终执行到了危险函数的位置

JAVA反序列化漏洞是由于开发者重写了readObject方法,该readObject方法方法调用了别的方法,最终执行到了例如Transfrom方法的危险方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1093650.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RK3588 USB WIFI调试

一.安卓wifi框架 要使用一个wifi功能需要涉及的部分有内核部分wifi驱动,应用部分wpa_supplicant服务。其中wifi驱动又包含很多部分,分为通讯接口的驱动SDIO、USB、PCIE等,还有上下电部分的驱动,wifi模组提供部分的驱动。应用部分不…

random生成随机数的灵活运用

random返回的 [0,1) 之间的一个随即小数 思考:请写出获取 a-b 之间的一个随机整数,a,b均为整数,比如 a2 , b7 即返回一个数 x > [2,7]Math.random()*(b-a) 返回的就是 [0,b-a](int)(aMath.random()*(b-a1)) 》 (int)(2Math.random()*6) Ma…

常用傅里叶变换表

傅里叶展开 傅里叶变换 傅里叶逆变换 时域信号 弧频域信号 线性变换 时域平移 频域平移 伸缩变换 微分性质 逆变换的微分性质 卷积定理 原函数变换结果 单位阶跃函数: 符号函数: 矩形函数: 辛格函数:

系统架构师备考倒计时22天(每日知识点)

测试阶段划分 单元测试:依据详细设计,模块测试,模块功能、性能、接口等集成测试:依据概要设计,模块间的接口系统测试:依据需求文档,在真实环境下,验证完整的软件配置项能否和系统正…

了解变分自动编码器 (VAE)

一、介绍 在过去的几年中,由于(并暗示)该领域取得了一些惊人的进步,基于深度学习的生成模型引起了越来越多的兴趣。依靠大量的数据、精心设计的网络架构和智能训练技术,深度生成模型表现出了令人难以置信的能力&#x…

Active Session History (ASH) 读书笔记

本文为博文Active Session History (ASH)的读书笔记。 AWR,ADDM,SQL Trace是对过去事件的分析,[G]V$视图包含大量实时信息,但使用界面不友好,对初学者较难。因此Oracle 10g推出了ASH,属于Oracle Diagnosti…

Linux网络编程系列之UDP广播

一、什么是UDP广播 UDP广播是一种网络通信的方式,在广域网或局域网中,UDP广播可以向多个目标主机发送数据包,使得网络中的所有设备都能接收到广播消息。一定是采用UDP协议。 二、特性 1、面向无连接:UDP广播不需要建立连接&#…

PLC易学但是后期如何发展?

今日话题 PLC易学但是后期如何发展? PLC学习简便,但重要性不容小觑。除基础外,以下为几个技术方向: 大规模系统:包括冗余PLC、网络架构和服务器。掌握虚拟化、网络设计和模块化。 特色系统:如电力行业…

FastAdmin前台分片传输上传文件getshell

漏洞概述 FastAdmin框架存在有条件RCE漏洞,由于FastAdmin的前台文件上传功能中提供了分片传输功能, 但在合并分片文件时因对文件路径的拼接处理不当导致可上传任意文件。 漏洞复现 漏洞需要一个低权限的账号 所以我们需要在前台注册一个普通用户 注册成功后进行…

1. 树的建立与基本操作

程序的输入是一个表示树结构的广义表。假设树的根为 root ,其子树森林 F = ( T1 , T2 , … , Tn ),设与该树对应的广义表为 L ,则 L =(原子&#…

TLS/SSL 详解

目录 基础理论入门HTTPS对称加密非对称加密证书TLS握手过程握手总结 TLS 定义(记录层/握手层)HTTPS HTTP over TLS加密记录层分片 (Fragmentation)记录压缩和解压缩 (Record compression and decompression)空或标准流加密 (Null or standard stream cipher)CBC 块加密 (分组加…

NV21图片格式深入解析与代码实战-RGB转NV21与画框

1.NV21格式图片解析 NV21图像格式属于 YUV颜色空间中的YUV420SP格式 每四个Y分量共用一组U分量和V分量,Y连续排序,U与V交叉排序 重点总结 uv交错模式4Y共用一组uv(2个)大小:UV Y 的一半 排列方式如下 Y Y   Y Y   Y Y   Y Y Y Y   Y Y…

001数据安全传输-多端协议传输平台:Openssl安装和配置 - EVP代码测试

001数据安全传输-多端协议传输平台:Openssl安装和配置 - EVP代码测试 文章目录 001数据安全传输-多端协议传输平台:Openssl安装和配置 - EVP代码测试1. 安装1.1 windows下安装openssl1.2 Linux下安装OpenSSL 2. VS中使用openssl3. 测试 1. 安装 1.1 win…

ionic+vue+capacitor系列笔记--常用操作代码合集(图片引用,axios跨域配置,去除按钮波纹)

1.单个图片引用 html <img :src"userImgSrc" />ts <script lang"ts"> import { defineComponent } from "vue"; export default defineComponent({name: "Tab1Page",components: {},setup(props, context) {let url &…

FFmpeg截图命令优化

由于项目要求&#xff0c;需要对摄像机的rtsp流进行截图。一开始我使用了命令&#xff1a; ./ffmpeg -ss 0 -i XXX -f image2 -vframes 1 -s 370*210 -y output.jpg 上述命令抓取rtsp流第0秒&#xff08;当前&#xff09;的图像&#xff0c;将其保存为370*210分辨率的jpg图片…

清理日志后出现 no boot device available,不能启动处理

3号LNS清理日志后出现 no boot device available&#xff0c;不能启动处理 然后 不知道为什么&#xff0c;清理系统日志后&#xff0c;就这样了&#xff0c; 然后按下F11&#xff0c;选择硬盘启动就好了&#xff0c;不要选择USB那个&#xff01; ...... 这样是能启动了&#xf…

延时盲注(CVE-2022-0948)

详解&#xff1a; 延时盲注&#xff0c;也称为时间盲注或延迟注入&#xff0c;是一种利用执行时间差判断是否执行成功的盲注手法。攻击者提交一个对执行时间敏感的SQL语句&#xff0c;通过执行时间的长短来判断注入是否成功。例如&#xff0c;如果注入成功&#xff0c;执行时间…

互联网Java工程师面试题·Java 并发编程篇·第七弹

目录 16、CAS 的问题 17、什么是 Future&#xff1f; 18、什么是 AQS 19、AQS 支持两种同步方式&#xff1a; 20、ReadWriteLock 是什么 21、FutureTask 是什么 22、synchronized 和 ReentrantLock 的区别 23、什么是乐观锁和悲观锁 24、线程 B 怎么知道线程 A 修改了…

零代码编程:用ChatGPT批量采集bookroo网页上的英文书目列表

bookroo网页上有很多不错的英文图书书目。比如这个关于儿童花样滑冰的书单&#xff1a; https://bookroo.com/explore/books/topics/ice-skating 怎么批量下载下来呢&#xff1f; 这个网页是动态网页&#xff0c;要爬取下来比较麻烦&#xff0c;可以先查看源代码&#xff0c;…

06-使用dockerfile构建nginx、redis镜像

主旨 本文使用上一篇文章中说到的dockerfile方式&#xff0c;分别构建一个nginx&#xff0c;一个redis镜像。 环境 linux环境 docker环境 nginx镜像构建 创建目录&#xff0c;并切换至对应目录&#xff1a; [yunweijialocalhost ~]$ mkdir -pv docker/nginx mkdir: 已创建目录 …