freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

php反序列化漏洞
sgk1df 2023-07-26 16:34:26 154758
所属地 北京

php反序列化漏洞常识

什么是PHP的反序列化漏洞

序列化与反序列化一开始的初衷是,便于数据完整的传输,但是由于在php的反序列化中,对象会自动调用的魔法函数,而这些魔法函数本身又调用了其他方法,最终呈现一种链式调用,则会引起危险代码的执行。

反序列化函数

serialize(); 将对象序列化成字符串
unserialize(); 将字符串反序列化回对象

反序列化漏洞

以 __ 开头的函数,是PHP 中的魔术方法。
类中的魔术方法,在特定情况下会自动调用。即使魔术方法在类中没有被定义,也是真实存在的。
两个下划线
__construct() 在创建对象时自动调用
__destruct() 在销毁对象时自动调用
__wakeup() unserialize()时会自动调用这个函数
__sleep() serialize()时会自动调用这个函数

魔法函数调用范例

自动调用construct()函数

在下方创建$shop1 对象时,自动调用函数

<?php

class Shop{
	public $name;
	public $prince;
	public $detail;
	public function __construct(){  //调用对象时
		
		echo "fanxuliehua";
		
	}
}
$shop1 = new Shop();//创建对象
$shop1->name="dress";
$shop1->prince=12;
$shop1->detail="haokan";
?>

结果图:
image.png

自动调用destruct()函数

在销毁对象时自动调用,将对象置为空即为销毁对象。

<?php
class Shop{
	public $name;
	public $prince;
	public $detail;

	public function __destruct(){  //销毁对象时
		
		echo "xiaohuile";
	
	}
}
$shop1 = new Shop();//创建对象
$shop1->name="dress";
$shop1->prince=12;
$shop1->detail="haokan";
$shop1 = null;  //销毁对象

?>

结果图:
image.png

自动调用sleep()函数

serialize()时会自动调用这个函数

<?php

class Shop{
	public $name;
	public $prince;
	public $detail;
	public function __sleep(){  //序列化时
		
		echo "xuliehua";
	
	}
}
$shop1 = new Shop();//创建对象
$shop1->name="dress";
$shop1->prince=12;
$shop1->detail="haokan";

serialize($shop1);   //序列化

?>

结果图:
image.png

自动调用wakeup()函数

unserialize()时会自动调用这个函数

<?php

class Shop{
	public $name;
	public $prince;
	public $detail;
	public function __wakeup(){  //反序列化时
		
		echo "fanxuliehua";
	
	}

}
$shop1 = new Shop();//创建对象
$shop1->name="dress";
$shop1->prince=12;
$shop1->detail="haokan";
serialize($shop1);   //序列化

unserialize(serialize($shop1));   //反序列化
?>

结果图:
image.png

感谢观看,欢迎提问。

# 漏洞 # 网络安全
本文为 sgk1df 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
成长之路
sgk1df LV.3
这家伙太懒了,还未填写个人描述!
  • 6 文章数
  • 2 关注者
记一次windows联合排查工程
2024-01-15
mysql数据库备份文件后缀
2023-10-09
shiro反序列化漏洞
2023-07-26
文章目录