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

php __destruct反序列化原理

php __destruct反序列化

一、php __destruct反序列化简介

  本文主要介绍基于CTF的PHP中的反序列化(序列化)的基础知识。

二、php __destruct反序列化介绍

  虽然是介绍反序列化,但是实际上是序列化和反序列化的组合介绍,此处先从正向过程序列化开始介绍。

  序列化是将变量按照特定规则转化为字符串的过程,而反序列化就是将转化后字符串重新恢复成各种变量数据类型的过程,序列化对应的函数是serialize()而反序列化则是unserialize()。

序列化转化规则:

序列化规则即如图(最外层一对双引号为var_dump()函数输出内容时自带的,并不包含在序列化之后的内容中),大致为:数据类型代号字符+数据长度(字符串数据才有)+数据内容。其中的类序列化得到的字符串在花括号外层是:类的代号字符+类名长度+类的名称+类属性的个数,内层则是类的各种属性序列化结果的拼接(类属性的名称也按照相同规则进行了序列化),CTF中的反序列化则是和类序列化和反序列化有关。

类的序列化:

 根据类中属性的不同,序列化之后会得到三种不同的序列化字符串。

相关文章:

  • 通俗易懂,一文学会前端缓存
  • python常用基础笔记
  • centos设置root免密自动登陆
  • JuiceFS 在多云存储架构中的应用 | 深势科技分享
  • 【LeetCode】思维向题笔记总结(持续更新)
  • springboot+vue农产品销售配送网站
  • ISE的FPGA程序加载与固化——Omapl138/TMS320C6748+FPGA核心板
  • SAP ABAP 定义事件以及处理事件
  • 西瓜书-2习题
  • 中国LED封装行业发展前景预测与投资战略规划分析报告
  • 传出神经系统分为哪两类,传出神经的分类与功能
  • [最新]ubuntu22.04安装kubernetes1.25 k8s1.25
  • 个人整理前端代码规范
  • 中国图书零售连锁行业市场前瞻与投资战略规划分析报告
  • Linux开发工具 - vim篇
  • 【5+】跨webview多页面 触发事件(二)
  • 【RocksDB】TransactionDB源码分析
  • 【技术性】Search知识
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • GraphQL学习过程应该是这样的
  • jquery cookie
  • js算法-归并排序(merge_sort)
  • Linux各目录及每个目录的详细介绍
  • linux学习笔记
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • tab.js分享及浏览器兼容性问题汇总
  • 聊聊flink的BlobWriter
  • 前端代码风格自动化系列(二)之Commitlint
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • puppet连载22:define用法
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #HarmonyOS:软件安装window和mac预览Hello World
  • (145)光线追踪距离场柔和阴影
  • (C++20) consteval立即函数
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (附源码)计算机毕业设计ssm电影分享网站
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (学习日记)2024.01.09
  • (循环依赖问题)学习spring的第九天
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (转)LINQ之路
  • (转)Windows2003安全设置/维护
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .apk文件,IIS不支持下载解决
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET 中的轻量级线程安全
  • .NET程序员迈向卓越的必由之路
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝
  • [.net] 如何在mail的加入正文显示图片
  • [1525]字符统计2 (哈希)SDUT