当前位置: 首页 > news >正文

php魔术方法和反序列化漏洞

什么是反序列化漏洞?

漏洞形成的根本原因就是程序没有对用户输入的反序列化字符串进行检测,导致反序列化过程可以被恶意控制,进而造成代码执行、GetShell 等一系列不可控的后果。反序列化漏洞并不是PHP 特有的,也存在于Java、Python 语言中,其原理基本相同。

反序列化是字节流转对象的过程,如果这个过程中没有对用户输入的字符串进行检测,就可能造成代码执行、RCE漏洞,php、Java中都有反序列化漏洞,由于Java中皆可对象,所以Java的反序列化漏洞比php更常见。

php魔术方法

php规定以两个下划线(__)开头的方法都保留为魔术方法
以__开头的函数,是PHP 中的魔术方法。类中的魔术方法,在特定情况下会自动调用。即使魔术方法在类中没有被定义,也是真实存在的。

  • __destruct(),销毁对象时会自动调用,反序列化时也会被自动调用
  • __construct(),创建对象时会自动调用
  • __get(访问后门),问私有成员属性的时候自动触发(__get 函数只能进行查看无法进行修改。)
  • __set(),对私有成员属性进行设置值时自动触发
  • __isset,对私有成员属性进行 isset 进行检查时自动触发
  • __unset,对私有成员属性进行 unset 进行检查时自动触发
http://www.lryc.cn/news/157340.html

相关文章:

  • 依赖项的处理与层的创建与注册
  • Linux CentOS7 系统中添加用户
  • 八、任务状态
  • 基于python的反爬虫技术的研究设计与实现
  • msvcr120.dll放在哪里?怎么修复msvcr120.dll文件
  • Ubuntu搭建NFS服务
  • PHP教学质量评估系统Dreamweaver开发mysql数据库web结构php编程计算机网页代码
  • ElementUI浅尝辄止15:Table 表格
  • 配置LVS_DR模式以及nginx负载均衡
  • 虚拟数字人直播软件实现带货功能,成为新一代直播风口!
  • 01背包问题暴力解法(回溯法)和经典解法
  • K8S的CKA考试环境和题目
  • docker清理
  • 队列和栈两种数据结构的区别和Python实现
  • java 企业工程管理系统软件源码+Spring Cloud + Spring Boot +二次开发+ MybatisPlus + Redis
  • 使用Smartctl脚本输入当前所有磁盘的状态
  • 数学建模之插值法
  • rhcsa学习2(vim、创建管理用户、组等)
  • 【使用教程】Github(自用)
  • typeScript学习笔记(一)
  • 第4章:网络层
  • C高级day1 shell 指令的补充学习
  • 灰度变换与空间滤波
  • 敏感接口权限校验
  • [LeetCode周赛复盘] 第 112场双周赛20230903
  • Spark【RDD编程(二)RDD编程基础】
  • 【2023最新版】MySQL安装教程
  • 关于mysql数据文件损坏导致的mysql无法启动的问题
  • 深度学习之视频分类项目小记
  • pandas(四十三)Pandas实现复杂Excel的转置合并