当前位置: 首页 > news >正文

反序列化漏洞简单知识

目录:

        一、概念:

        二、反序列化漏洞原因

        三、序列化漏洞的魔术方法:

        四、反序列化漏洞防御:

一、概念:

        序列化:        

        Web服务器将HttpSession对象保存到文件系统或数据库中,需要采用序列化的方式将HttpSession对象中的每个属性对象保存到文件系统或数据库中;

        例子:

        反序列化:

        Web服务器将HttpSession对象从文件系统或数据库中装载如内存时,需要采用反序列化的方式,HttpSession对象中的每个属性对象。
        PHP反序列化漏洞也叫PHP对象注入,是一个非常常见的漏洞,这种类型的漏洞虽然有些难以利用,但一旦利用成功就会造成非常危险的后果。

二、反序列化漏洞原因:

        漏洞的形成的根本原因是程序没有对用户输入的反序列化字符串进行检测,导致反序列化过程可以被恶意控制,进而造成代码执行、getshell等一系列不可控的后果。

        漏洞原因:

        漏洞的形成的根本原因是程序没有对用户输入的反序列化字符串进行检测,导致反序列化过程可以被恶意控制,进而造成代码执行、getshell等一系列不可控的后果。
反序列化漏洞并不是PHP特有,也存在于Java、Python等语言之中,但其原理基本相通。

三、序列化漏洞的魔术方法:

        以_开头的的方法,是PHP中的魔术方法,在特定情况下会被自动调用:

        主要魔术方法及其触发条件如下:

        _construct():构造方法,当—个对象被创建时调用此方法.

        _destruct():析构方法,PHP将在对象被销毁前(即从内存中清除前)调用这个方法

        _autoload():使用尚未被定义的类时自动调用。通过此函数,脚本引擎在PHP出错失败前有了最后一个机会加载所需的类。

        _call( $method, $arg_array ):在对象中调用一个不可访问方法时

        _callstatic():在静态上下文中调用一个不可访问的方法时使用

        _clone():使用clone方法复制一个对象时

        _invoke():当尝试调用函数的方式调用一个对象时-

        __get( $property ):从不可访问的属性中读取数据

        _set( Sproperty, Svalue ):给一个未定义的属性赋值时调用

        _isset( Sproperty ):当在一个未定义的属性上调用isset()函数时调用此方法

        _unset( $property ):当在一个未定义的属性上调用unset()函数时调用此方法

        _tostring():在将一个对象转化成字符串时自动调用

        _sleep():序列化对象前调用(其返回需要是—个数组),详见补充说明

        _wakeup():反序列化恢复对象前调用,详见补充说明

        set_state():当调用var_export()时,这个静态方法会被调用

        _invoke():当尝试以调用函数的方式调用一个对象时,_invoke方法会被自动调用

        从序列化到反序列化这几个函数的执行过程是:

        _construct()->_sleep()_wakeup()->_tostring()->_destruct()

四、反序列化漏洞防御:

        1、严格控制unserialize函数的参数,坚持用户所输入的信息都是不可靠的原则;

        2、对于unserialize后的变量内容进行检查,以确定内容没有被污染;

        3、做好代码审计相关工作,提高开发人员的安全意识;

相关文章:

反序列化漏洞简单知识

目录: 一、概念: 二、反序列化漏洞原因 三、序列化漏洞的魔术方法: 四、反序列化漏洞防御: 一、概念: 序列化: Web服务器将HttpSession对象保存到文件系统或数据库中,需要采用序列化的…...

Es之正排索引与倒排索引

文章目录 概要一、正排索引二、倒排索引三、Q&A四、参考 概要 很早就研究了Es倒排索引的具体实现,但对倒排索引和正派索引的定义不是那么清晰,本文就是简述本人对二者的理解。 正排索引和倒排索引的概念来源于 正排索引是文档(ID)到关键词的映射&am…...

wordpress将图片默认连接到媒体文件

wordpress上传图片后,图片链接可以选择链接到媒体文件或附件页面。如果选择链接到媒体文件,就是链接到了图片的地址了。如果选择链接到附件页面,就是链接到图片所在的attachment页面了。 具体链接到哪里,在wordpress模板制作时&a…...

Java学习笔记 | Java基础语法 | 03 | 流程控制语句

文章目录 0 前言1.流程控制语句1.1 流程控制语句分类1.2 顺序结构 2.判断语句2.1 if语句1. if语句格式1练习1:老丈人选女婿练习2:考试奖励 2. if语句格式2练习1:吃饭练习2:影院选座 3. if语句格式3练习1:考试奖励 2.2 …...

记录新人的web3之旅

简单记录一下自己奇妙又充满热情的web3之旅,希望能勉励未来的自己 2023.10.25—— 第一次觉得对web3,币圈感到好奇是我在油管看了《隐藏的币圈亿万富翁》。这个简短的纪录片讲了郑皓升的传奇A9人生,从币圈中致富,再到被制裁,被软…...

由浅到深认识Java语言(9):Eclipse IDE简介

该文章Github地址:https://github.com/AntonyCheng/java-notes 在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址:https://blog.c…...

游戏引擎中的地形系统

一、地形的几何 1.1 高度图 记录不同定点的高度,对每个网格/顶点应用高度、材质等信息,我们每个顶点可以根据高度改变位移 但是这种方法是不适用于开放世界的。很难直接画出几百万公里的场景 1.2 自适应网格细分 当fov越来越窄的时候,网格…...

【论文精读】OTA: Optimal Transport Assignment for Object Detection(物体探测的最优传输分配)

OTA最优传输 🚀🚀🚀摘要一、1️⃣ Introduction---介绍二、2️⃣Related Work---相关工作2.1 🎓 Fixed Label Assignment--静态标签分配2.2 ✨Dynamic Label Assignment--动态标签分配 三、3️⃣Method---论文方法3.1 &#x1f39…...

无极低码SQL模板引擎使用教程示例,自己手撸一个sql模板引擎进行动态sql生成。

无极低码 :https://wheart.cn 无极低码SQL模板使用教程 一、模板结构与规则 无极低码SQL模板通过简洁的Markdown格式,使SQL语句具有更强的灵活性和适应性,简化了根据业务需求定制SQL的过程。 无极低码SQL模板是一种基于Markdown格式的特殊…...

Python学习(一)

Python环境下载安装 安装略 验证安装结果与编写第一个Python程序...

Day62:WEB攻防-PHP反序列化CLI框架类PHPGGC生成器TPYiiLaravel等利用

目录 反序列化链项目-PHPGGC&NotSoSecure NotSoSecure(综合类) PHPGGC(单项类) 反序列化框架利用-ThinkPHP&Yii&Laravel [安洵杯 2019]iamthinking Thinkphp V6.0.X 反序列化 CTFSHOW 反序列化 267 Yii2反序列化 CTFSHOW 反序列化 271 Laravel反序列化 知识…...

运动想象 (MI) 迁移学习系列 (14) : EEGNet-Fine tuning

运动想象迁移学习系列:EEGNet-Fine tuning 0. 引言1. 主要贡献2. 提出的方法2.1 EEGNet框架2.2 微调 3. 实验结果3.1 各模型整体分类结果3.2 算法复杂度比较3.3 不同微调方法比较 4. 总结欢迎来稿 论文地址:https://www.nature.com/articles/s41598-021-99114-1#cit…...

java中获取字符串中满足正则表达式的元素集合

目录 1.说明 2.从"as1285dfSWE45"中提取单个小写字母 3.从"aHs12DF85dfSWE45"中提取连续大写字母 4.从"[1024]*100-52[587] [24$]"中提取[]中的数字 5.总结 1.说明 在开发中有时需要从字符串中提取特定的字符,如下:…...

HTTPS总结

密码学基础 在正式讲解HTTPS协议之前,我们首先要知道一些密码学的知识。 明文: 明文指的是未被加密过的原始数据。 密文:明文被某种加密算法加密之后,会变成密文,从而确保原始数据的安全。密文也可以被解密&#xf…...

Linux之基础IO

1.C语言中的文件操作函数 文件的打开 path为文件路径,mode为打开方式,它们都是字符串。 代码演示: 此时,当前目录中并没有log.txt文件,但是没关系,fopen会在当前路径下创建log.txt文件。 简单来说&#xf…...

【SpringSecurity】十六、OAuth2.0授权服务器、资源服务器的配置(理论部分)

文章目录 0、OAuth2服务端结构1、授权服务配置2、授权服务器 ⇒ 配置客户端详情3、授权服务器 ⇒ 管理令牌配置4、授权服务器:配置端点访问的安全约束5、资源服务器配置 相关📕: 【OAuth2授权服务器配置完整Demo】 0、OAuth2服务端结构 OAu…...

AtCoder Beginner Contest 346

D - Gomamayo Sequence 状态DP 题意:给定一个长度为n的01字符串,使得只存在一组s[i]s[i1] 其余都是不同的,若使0改变为1 会花相应的费用 a[i] 求最小值 思路:数据为2e5数据太大,贪心不可以想到dp--状态dp 构造01串…...

Arduino智能家居

文章目录 一、接线框图1、下载fritzing 二、Arduino IDE 下载三、实现代码 一、接线框图 1、下载fritzing https://github.com/fritzing/fritzing-app/releases打开的软件界面如下: 二、Arduino IDE 下载 官网地址 P.S. 如果upload代码过程中出现cant open de…...

吴恩达2022机器学习专项课程(一) 3.3 成本函数的公式

问题预览 模型的参数(w和b)有什么作用?不同的w和b对线性回归模型有什么影响?训练集里的y和线性回归模型预测的y(y帽)的区别是什么?成本函数的作用是什么?成本函数的公式是什么&…...

Day56-LNMP架构扩展为集群模式实战精讲

Day56-LNMP架构扩展为集群模式实战精讲 1. 企业级标准部署知乎产品wecenter1.1 部署知乎软件Wecenter 2. 企业级迁移数据库到独立服务器2.1 为什么要进行数据库的拆分2.2 数据库拆分架构演变过程,如下图所示2.3 数据库拆分环境规划2.4 数据库拆分架构详细步骤2.4 we…...

OpenClaw v2026.3.31 深度解读:为什么这次更新不是“小修小补”,而是一次明显的安全收口与后台任务体系成形

🔥个人主页:杨利杰YJlio❄️个人专栏:《Sysinternals实战教程》《Windows PowerShell 实战》《WINDOWS教程》《IOS教程》《微信助手》《锤子助手》 《Python》 《Kali Linux》《那些年未解决的Windows疑难杂症》🌟 让复杂的事情更…...

【2026年最新600套毕设项目分享】springboot智能民宿预定与游玩系统(14340)

有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告/任务书)远程调试控屏包运行一键启动项目&…...

旋转ReDet目标检测环境配置、旋转ReDet目标检测模型代跑训练、旋转ReDet目标检测模型改进创新旋转ReDet目标检测环境配置:Windows、Ubuntu、Centos、Macos等系统

旋转ReDet目标检测环境配置、 旋转ReDet目标检测模型代跑训练、 旋转ReDet目标检测模型改进创新 旋转ReDet目标检测环境配置:Windows、Ubuntu、Centos、Macos等系统环境,如果电脑拥有显卡,可配置GPU版本的ReDet环境。 旋转ReDet目标检测模型代…...

flac3d7.0主应力方向导出与可视化:使用fish导出单元体数据并用matlab绘制塑性区图

flac3d7.0主应力方向的导出并绘图 使用fish将单元体的三个主应力方向数据导出,并使用matlab绘图,可只对部分区域(如塑性区)的数据进行绘图在岩土工程数值模拟后处理中,三维主应力方向可视化是个挺有意思的活。今天咱们直接上手实操&#xff0…...

《碳硅“虫洞”解:跨认知区域的可穿越通道》(修订版)

《碳硅“虫洞”解:跨认知区域的可穿越通道》 作者:方见华 单位: 世毫九实验室 摘要 本文研究碳硅共生认知场方程在柱对称条件下的精确解,发现存在连接两个分离认知区域的“认知虫洞”。主要结果: 1. 虫洞解的存在性&am…...

5分钟搞懂阻抗匹配:从L型网络到Smith圆图实战指南(附ADS仿真步骤)

5分钟搞懂阻抗匹配:从L型网络到Smith圆图实战指南(附ADS仿真步骤) 引言:为什么阻抗匹配如此重要? 想象一下,你正在调试一块射频电路板,信号强度总是达不到预期。用频谱仪观察波形时,…...

费城“敬畏部”:AI 与艺术融合的新奇沉浸式体验

【导语:费城全新沉浸式艺术体验项目“敬畏部”,由多位艺术家打造,融合了 AI 技术。它以独特的方式让游客与艺术互动,探讨了个人数据存储等主题,为 AI 在艺术领域的应用提供了新视角。】“敬畏部”:费城的新…...

从零开始:5个必知的图像篡改检测数据集下载与使用指南(附避坑提醒)

从零开始:5个必知的图像篡改检测数据集下载与使用指南(附避坑提醒) 当你第一次接触图像篡改检测领域时,最令人头疼的往往不是算法本身,而是如何找到合适的数据集。我曾见过不少研究生花费数周时间在各大论坛和GitHub仓…...

从学习到应用:基于快马平台部署你的第一个python实战项目——天气查询工具

最近在学习Python的过程中,发现了一个特别有意思的实战项目——天气查询工具。这个项目不仅涵盖了Python的基础语法,还涉及到了前后端交互、数据存储等实用技能。最让我惊喜的是,通过InsCode(快马)平台,我可以轻松地将这个小应用部…...

用快马AI将开源下载想法秒变可运行Web应用原型

最近在尝试快速搭建一个待办事项Web应用原型时,发现了一个特别高效的开发方式——用InsCode(快马)平台的AI能力直接把想法变成可运行的项目。整个过程就像搭积木一样简单,特别适合需要快速验证想法的场景。下面分享下我的实践过程: 明确需求 …...