PHP序列化与反序列化代码编写

序列化

序列化漏洞在攻击者主机上

作用:保证编写的代码(数据)可以互联网上完整的传输。

定义`name、age、sex`对象

<?php
class Stu{
public $name;
public $age;
public $sex;
}
$stu1 = new Stu();
$stu1->name = "xy";
$stu1->age = 24;
$stu1->sex = true;
var_dump($stu1);
echo "<br />";
echo serialize($stu1);
?>

输出结果

例:

利用魔法实现计算机的调用

<?php
class animal{
    public $name;
    public $age;

    public function __sleep(){
    if(@$_GET['cmd']=="xy"){
        system('calc');
    }
    }

}

$an1=new animal;

$an1->name="dog";
$an1->age=3;

@serialize($an1);

?>

输出结果

反序列化

反序列化漏洞在对象的服务器上(代码审计审出的反序列化漏洞)

- serialize():将对象序列化成字符串

- unserialize():将字符串反序列化回对象

利用魔法实现计算机的调用

<?php
class animal{
    public $name;
    public $age;

    public function __wakeup(){
    if(@$_GET['cmd']=="xy"){
        system('calc');
    }
    }

}

$an1=new animal;

$an1->name="dog";
$an1->age=3;

$b=serialize($an1);
@unserialize($b)

?>

输出结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值