反序列化漏洞【1】

news2025/1/19 17:21:25

1.不安全的反序列化漏洞介绍

序列化:将对象转换成字符串,目的是方便传输,关键词serialize

a代表数组,数组里有三个元素,第一个元素下标为0,长度为7,内容为porsche;第二个元素下标为1,长度为3,内容为BMW;第三个元素下标为2,长度为5,内容为Volvo。

反序列化:将特定的字符串转换对象,关键词unserialize

反序列化成功

反序列过程可以进行xss、代码执行eval、文件包含include

2.类和对象概念

类:抽象的东西,归类

对象:具体的东西==把类 实例化就是对象

类型:类名的长度:‘类名‘:属性的数量:{s:4:"属性1 ";s:6:"值1";}

3.php类区别

介绍
public表示全局,类内部外部子类都可以访问【随便改】
private表示私有的,只有本类内部可以使用【不能继承】
protected表示受保护的,只有本类或子类或父类中可以访问【只能使用不能修改】

类可以继承【父类子类】和覆盖,继承关键词extends,覆盖关键词public

4.魔法函数PHP

construct():在创建一个对象时自动调用的构造函数。可以用来初始化对象的属性或执行其他必要的操作。

destruct():在一个对象被销毁之前自动调用的析构函数。可以用来执行一些清理操作,如关闭数据库连接或释放资源。

get:在访问一个对象的属性不存在或不可访问时自动调用。可以用来动态获取或计算属性的值。

set():在给一个对象的属性值时自动调用。可以用来对属性进行过滤或验证,或执行其他必要的操作。

isset():在使用isset()函数判断一个对象的属性是否存在时自动调用。可以用来检测属性是否存在或是否具有特定的值。

unset():在使用unset()函数销毁一个对象的属性时自动调用。可以用来执行一些清理操作,如释放内存或删除临时文件。

call():在调用一个对象的不存在或不可访问的方法时自动调用。可以用来实现对象的动方法调用。

callStatic():在调用一个类的不存在或不可访问的静态方法时自动调用。可以用来实现类的动态方法调用。

toString():在将一个对象转换为字符串时自动调用。可以用来定义对象的字符串表示形式。

invoke():在将一个对象作为函数调用时自动调用。可以用来将对象作可调用的函数使用。

clone():在克隆一个对象时自动调用。可以用来执行一些必要的操作,如复制对象的属性或初始化新对象。

sleep():在将一个对象序列化为字符串时自动调用。可以用来决定对象序列化时需要保存哪些。

wakeup():在将一个字符串反序列化为对象时自动调用。可以用来恢复对象的状态或执行其他必要的操作。

set_state():在使用var_export()导出一个对象时自动调用。可以用来定义对象的导出行为。

debugInfo():在使用var_dump()或print_r()打印一个对象时自动调用。可以用来定义对象的调试信息。

5.php反序列化应用-文件包含

获取payload可先序列化后获得

源代码获取payload

若代码var后面是echo,可进行xss,若代码是写文件或包含效果,如require ,可进行文件包含,若代码存在eval,可进行函数调用

6.Java 反序列化漏洞--工具

php反序列化漏洞看代码,java反序列化漏洞需利用工具

7.反序列化漏洞防范

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

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

相关文章

rk3399 shell 测试串口 sttf

问题: 使用 ubunut shell 来对串口进行测试。 板卡上使用的是 USB 转串口, 使用了一片ch340 原理图如下: 再 ubuntu shell 的测试命令。 这里首先要 insmod 一下 ch340 的驱动,默认会有 /usr/sbin/ch34x.ko, 如果没…

创新指南 | 企业AI战略实施方案探讨(下):如何基于AI重构业务流程并落地实施

人工智能(AI)的浪潮已经席卷全球,成为推动现代企业发展的强大动力。AI技术不仅提升了企业的运营效率,还催生了新的商业模式和市场机会。本文将深入探讨AI的革新性应用案例,并提供一套企业落地AI的具体实施方案&#xf…

springboot3.0+继续使用springboot2.0配置会显示 `无法自动装配,找不到对应的Bean`解决方法

在 Spring Boot 3.0 中,Spring 团队对自动配置机制进行了重大变更,特别是 spring.factories 文件。spring.factories 文件已被 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 文件所取代。在springboot3.0继续使用…

SQL使用Groupby分组后,选择每个分组某个值最大的那一行

思路是: 先定位分组后某个值最大的值是多少根据值去全表匹配,得到对应的行 比如有个表: SELECT * FROM my_table按照sku_id分组后,选择record_date最大的那一行的全部值,先分组: SELECT sku_id,max(rec…

四川易点慧电商抖音小店运营秘籍引领电商新潮流

在当今数字化浪潮中,抖音小店作为电商领域的一匹黑马,以其独特的社交属性和庞大的用户基础,正迅速崛起为新的销售增长点。四川易点慧电子商务有限公司,作为电商行业的佼佼者,深谙抖音小店运营的精髓,专业助…

Pytest测试实战

Pytest测试框架是动态语言Python专用的测试框架,使用起来非常的简单,这主要得易于它的设计,Pytest测试框架具备强大的功能,丰富的第三方插件,以及可扩展性好,可以很好的和unittest测试框架能够结合起来在项…

手机如何下载短视频到本地:成都鼎茂宏升文化传媒公

手机如何下载短视频到本地 ​随着移动互联网的迅猛发展,短视频已经成为人们生活中不可或缺的一部分。从娱乐、学习到社交,短视频以其短小精悍、内容丰富的特点,吸引了大量用户的关注。然而,有时我们可能希望将喜欢的短视频保存到…

计算机网络-DHCPv6基础

前面我们学习了IPv6地址可以通过手动配置、无状态自动配置、DHCPv6配置,这里简单学习下DHCPv6的知识点。 一、DHCPv6概述 DHCPv6 (Dynamic Host Configuration Protocol for IPv6) 是一种网络协议,设计用于IPv6网络环境中自动为网络设备分配必要的配置信…

LiveGBS流媒体平台GB/T28181用户手册-服务器概览:通道信息、负载信息、CPU使用、存储使用、带宽使用(Mbps)、内存使用

LiveGBS用户手册-服务器概览:通道信息、负载信息、CPU使用、存储使用、带宽使用(Mbps)、内存使用 1、服务器概览1.1、通道信息1.2、负载信息1.2.1、信息说明1.2.2、会话列表 1.3、CPU使用1.4、存储使用1.5、带宽使用(Mbps&#xf…

理解 Python 中的 `super()` 与 `__init__()` 方法

在 Python 的面向对象编程中,super() 函数和 __init__() 方法是两个非常重要的概念。它们在类的继承和初始化过程中扮演着关键的角色。本文将深入探讨这两个概念的工作原理,并通过示例代码来展示它们的使用。 基本原理 __init__() 方法 __init__() 是…

数据结构-栈(带图)

目录 栈的概念 画图理解栈 栈的实现 fun.h fun.c main.c 栈的概念 栈(Stack)是一种基本的数据结构,其特点是只允许在同一端进行插入和删除操作,这一端被称为栈顶。遵循后进先出(Last In, First Out, LIFO&#…

通俗易懂的策略模式讲解

什么是策略模式? 策略模式是一种设计模式,它允许你定义一系列的算法(策略),并将每个算法封装成一个对象。这样,你可以轻松地切换不同的算法,而不需要改变原始代码。 一个简单的例子 假设你是…

OpenHarmony标准设备应用开发(二)——布局、动画与音乐

本章是 OpenHarmony 标准设备应用开发的第二篇文章。我们通过知识体系新开发的几个基于 OpenHarmony3.1 Beta 标准系统的样例:分布式音乐播放、传炸弹、购物车等样例,分别介绍下音乐播放、显示动画、动画转场(页面间转场)三个进阶…

Qwen学习笔记2:Qwen模型基于ReAct原理实现function calling

前言 这也是一篇笔记,再探索一下Qwen模型的function calling功能。 Qwen1.8B模型能够进行function calling功能吗? 我们使用之前的reason_prompt模板进行测试: PROMPT_REACT """ Use the following format:Question: the…

AWS RDS ElasticCache 监控可观测最佳实践

在当今的电子商务时代,一个高效、稳定的电商平台对于保持竞争力至关重要。数据库作为电商平台的核心支撑,其性能直接影响到用户体验和业务流畅度。本文将深入探讨如何在电商场景下通过观测云对亚马逊云科技 RDS(MySQL) 和 Elastic…

python怎么安装matplotlib

1、登陆官方网址“https://pypi.org/project/matplotlib/#description”,下载安装包。 2、选择合适的安装包,下载下来。 3、将安装包放置到python交互命令窗口的当前目录下。 4、打开windows的命令行窗口,通过"pip install"这个命令…

八分钟“手撕”包装类与泛型

目录 一、包装类 基本数据类型和对应的包装类 装箱和拆箱 【思考题】 二、泛型 什么是泛型 引出泛型 怎么定义泛型和使用泛型 裸类型(Raw Type) 擦除机制 额外,注意下列代码: 泛型的上界 泛型的接口应用 泛型方法 一、包装类 简单来…

OpenHarmony 3GPP协议开发深度剖析——一文读懂RIL

市面上关于终端(手机)操作系统在 3GPP 协议开发的内容太少了,即使 Android 相关的学习文档都很少,Android 协议开发书籍我是没有见过的。可能是市场需求的缘故吧,现在市场上还是前后端软件开发从业人员最多&#xff0c…

Hotcoin Research|玩赚WEB3:探索Apeiron:颠覆传统的区块链游戏,融合神话与现代玩法

1. 游戏概述 1.1 游戏类型与主题 Apeiron 是一款结合了上帝模拟、Roguelike、动作角色扮演(ARPG)和卡牌游戏元素的区块链游戏。这款游戏以独特的方式融合了多种游戏类型,提供了一个丰富多彩的神话宇宙,每个星系都受到不同现实世…

JVM知识点及面试题补充

JVM从软件层面屏蔽了不同操作系统的底层硬件与指令上的区别(所谓的Java跨平台能力) java中JRE(java运行时环境)包括java各种Libraries类库以及Java Virtual Machine(Java虚拟机)。 类加载子系统&#xff1…