代码编织梦想

php反序列化
php反序列化简单的说就是魔术方法的不调用直接使用
为什么要反序列化:压缩空间,便于文件的存储
条件:存在类(class),存在魔术方法

简单理解反序列化

<?php $id=$_GET['id']; $a=serialize($id); echo $a; $b=unserialize($a); echo $b; ?>

a即为序列化后的数据,b为反序列化后的数据

魔术方法,不需要引用,在符合条件下,自动执行
__construct()//创建对象时触发 new类
__destruct() //对象被销毁时触发
__call() //在对象上下文中调用不可访问的方法时触发
__callStatic() //在静态上下文中调用不可访问的方法时触发
__get() //用于从不可访问的属性读取数据
__set() //用于将数据写入不可访问的属性
__isset() //在不可访问的属性上调用 isset()或 empty()触发
__unset() //在不可访问的属性上使用 unset()时触发
__invoke() //当脚本尝试将对象调用为函数时触发

<?php class Website{ public $name, $url, $title; public function __construct(){ echo '------这里是构造函数-__construct()
'; } public function __destruct(){ echo '------这里是析构函数-----__destruct()
'; } } $object = new Website(); echo '脚本运行结束之前会调用对象的析构函数
'; ?>

这段语句为例,新建class的时候,会直接运行__construct()函数,代码结束后会运行__destruct()函数
通过构造序列化之后的语句,插入对应文件。对应文件反序列化语句,在符合条件下,执行对应的魔术方法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_54030686/article/details/121758429

php反序列化入门之session反序列化-爱代码爱编程

原文地址:https://mochazz.github.io/2019/01/29/PHP反序列化入门之session反序列化/ PHP的session机制 在学习 session 反序列化之前,我们需要了解这几个参数的

谈一谈php反序列化_lethesec的博客-爱代码爱编程

0x01 基础知识 PHP序列化:php为了方便进行数据的传输,允许把复杂的数据结构,压缩到一个字符串中,使用serialize()函数。 PHP反序列化:将被压缩为字符串的复杂数据结构,重新恢复,使用unserial

PHP反序列化笔记-爱代码爱编程

目录 文章目录 目录private变量与protected变量序列化后的特点序列化后的字段长度前面可以加 +题目解题步骤CVE-2016-7124漏洞介绍演示代码题目解题步骤PHP Session 反序列化PHP的3种序列化处理器安全问题当 session.auto_start=Off 时测试Demo题目解题步骤phar反序列化 privat

pikachu靶场 :十二、PHP反序列化-爱代码爱编程

pikachu靶场 :十二、PHP反序列化 概论漏洞输出xss文件读取 概论 在理解这个漏洞前,你需要先搞清楚php中serialize(),unserialize()这两个函数。 序列化serialize() 序列化说通俗点就是把一个对象变成可以传输的字符串,比如下面是一个对象: class S{ public $test="bi

PHP反序列化—构造POP链-爱代码爱编程

前言: 最近在刷题的时候发现这个PHP反序列化—POP链,之前理解的序列化攻击多是在魔术方法中出现一些利用的漏洞,自动调用从而触发漏洞。但如果关键代码不在魔术方法中,而是在一个类的普通方法中。这时候可以通过寻找相同的函数名将类的属性和敏感函数的属性联系起来。 直接通过题目来进行学习,这样更容易掌握!!! Ezpop class Modifier {

php反序列化之pop链-爱代码爱编程

php反序列化之pop链 POP链介绍 POP 面向属性编程(Property-Oriented Programing) 常用于上层语言构造特定调用链的方法,与二进制利用中的面向返回编程(Return-Oriented Programing)的原理相似,都是从现有运行环境中寻找一系列的代码或者指令调用,然后根据需求构成一组连续的调用链,最终达到攻击者邪

PHP反序列化之基础-爱代码爱编程

序列化 序列化是将对象转换成字符串。但仅保留对象里的成员变量,不保留函数方法。将对象序列化有利于对象的保存和传输,也可以让多个文件共享对象。 反序列化 反序列化是将字符串恢复成对象。 PHP的序列化实现 源码: <?php class person{ public $name='zhangsan'; public $sex='boy

PHP反序列化之练习题-爱代码爱编程

pikachu平台反序列化漏洞 第一题:反序列化漏洞输出XSS 地址:https://www.bihuoedu.com/vul/unserilization/unser.php 查看unser.php文件的源码:  <?php class S{ var $test = "pikachu"; function __const

pikachu通关教程(php反序列化)-爱代码爱编程

php反序列化漏洞 php反序列化漏洞 查看源码 class S{ var $test = "pikachu"; function __construct(){ echo $this->test; } } //O:1:"S":1:{s:4:"test";s:29:"<script>

文件上传漏洞-爱代码爱编程

文件上传 文件上传是现代互联网常见的功能,允许用户上传图片、视频、及其他类型文件,向用户提供的功能越多,Web受攻击的风险就越大。 文件上传漏洞 上传文件时,如果未对上传的文件进行严格的验证和过滤,就容易造成文件上传漏洞,上传脚本文件(包括asp、aspx、php、jsp等)恶意上传行为可能导致网站甚至整个服务器被控制。恶意的脚本文件又被称为W