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

阅读量64879

发布时间 : 2021-09-03 14:30:35

 

什么是反序列化?

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

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

 

反序列函数:

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

识别二维码直通课程页面

本文由安全牛课堂原创发布

转载,请参考转载声明,注明出处: https://www.anquanke.com/post/id/252509

安全客 - 有思想的安全新媒体

分享到:微信
+10赞
收藏
安全牛课堂
分享到:微信

发表评论

内容需知
  • 投稿须知
  • 转载须知
  • 官网QQ群8:819797106
  • 官网QQ群3:830462644(已满)
  • 官网QQ群2:814450983(已满)
  • 官网QQ群1:702511263(已满)
合作单位
  • 安全客
  • 安全客
Copyright © 北京奇虎科技有限公司 360网络攻防实验室 安全客 All Rights Reserved 京ICP备08010314号-66