欢迎光临散文网 会员登陆 & 注册

PHP代码审计之反序列化漏洞

2021-09-03 10:22 作者:安全牛课堂  | 我要投稿

什么是反序列化?

序列化就是将对象转化为字节流,便于保存在文件,内存,数据库中;反序列化即将字节流转化为对象。

也就是把数据转化为一种可逆的数据结构,再把这种可逆的数据结构转化回数据,这就是序列化与反序列化。


反序列函数:

serialize() //  将一个对象转换成一个字符串

unserialize()  //将字符串还原成一个对象   


漏洞原理:

PHP将所有以__ (两个下划线)开头的类方法保留为魔术方法。所以在定义类方法时,除了上述魔术方法,建议不要以__为前缀。
常见的反序列化漏洞中出现的魔术方法及其触发条件:

__construct()当一个对象创建时被调用

__destruct()当一个对象销毁时被调用

__toString()当一个对象被当作一个字符串时使用

__sleep() 在对象在被序列化之前运行

__wakeup() 如果有,在反序列化之前调用


 课程推荐

《PHP代码审计之反序列化漏洞》,通过本课程您将学习到,反序列化漏洞对象注入代码审计、反序列化POP链构造基础审计、反序列化POP链构造之phpggc、session反序列化漏洞审计、MyuCMS源码phar反序列化漏洞审计、Typecho反序列化getshell审计、Yii2反序列化POP链挖掘审计,上述相关工具使用、实战代码分析、漏洞代码分析、漏洞复现、实例审计等内容。

视频地址:https://www.aqniukt.com/my/course/13996

 ▼识别二维码直通课程页面


PHP代码审计之反序列化漏洞的评论 (共 条)

分享到微博请遵守国家法律