BUUCTF-web [极客大挑战 2019]PHP1 之 反序列化漏洞

博客探讨了PHP反序列化漏洞,包括序列化和反序列化的概念,PHP中`serialize()`和`unserialize()`函数的作用,以及与反序列化相关的魔法函数如`__wakeup()`、`__construct()`和`__destruct()`等。文章还介绍了如何在极客大挑战2019的PHP1题目中利用反序列化漏洞,绕过`wakeup`方法并构造payload来获取flag。
摘要由CSDN通过智能技术生成

PHP反序列化漏洞

一,什么是序列与反序列

  序列就是把数据转成可逆的数据结构,目的是方便数据的储存和传输,反序列就是将数据逆转成原来的状态,序列就是拆数据,使得传输或储存更容易的过程,反序列就是重新拼凑还原数据的过程。

二,PHP中的反序列方法

PHP通过string serialize ( mixed $value )mixed unserialize ( string $str )两个函数实现序列化和反序列化。

序列化:serialize()将一个对象转换成一个字符串。反序列化:unserialize()将字符串还原为一个对象。

PHP(反)序列化有关的魔法函数

① void __wakeup ( void )

unserialize( )会检查是否存在一个_wakeup( ) 方法。如果存在,则会先调用_wakeup 方法,预先准备对象需要的资源。

② void __construct ([ mixed $args [, $... ]])

具有构造函数的类会在每次创建新对象时先调用此方法。

③ voi

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值