首页 > 教程 > 反序列化

反序列化

时间:2024-06-14 | 来源: | 阅读:199

话题: 序列 HP PHP

反序列化 什么是反序列化? 格式转换 序列化:对象转换为字符串或者数组等格式 反序列化:将数组或字符串转换成对象 为什么会出现安全漏洞? 魔术方法 如何利用漏洞? 通过构造pop链,找到代码的逻辑漏洞,进行getshell,rce等操作 反序列化利用分为三类 魔术方法的调用逻辑 语言原生类的调用逻辑

反序列化是一种格式转换的过程,它将对象从字符串或数组等格式转换为对象。与序列化相对应的是将对象转换为可存储或可传输的格式的过程。反序列化在计算机编程中起到了重要的作用,但同时也可能存在安全漏洞。

序列化是指将对象的状态信息转换为可存储或可传输的格式的过程。在各种编程语言中,序列化的逆过程就是反序列化,主要是为了方便对象传输。

反序列化利用分为三类:魔术方法的调用逻辑、语言原生类的调用逻辑(如SoapClient)、以及语言自身的安全缺陷(如CVE-2016-7124)。

在PHP中,基本类型的序列化形式如下:

bool:  b:value =>b:0
int:   i:value=>i:1
str:   s:length:“value”;=>s:4"aaaa"
array :a::{key:value pairs};=>a:{i:1;s:1:“a”}
object:O::
NULL:  N

序列化前:


序列化后:

O:4:“test”:5:{s:1:“a”;b:0;s:1:“b”;i:3;s:1:“c”;s:5:“hello”;s:1:“d”;a:4:{i:0;i:1;i:1;i:2;i:2;i:3;i:3;s:5:“hello”;}s:1:“e”;N;}


湘ICP备2022002427号-10湘公网安备:43070202000427号
© 2013~2019 haote.com 好特网