讲师中心 微信公众号
AI工具推荐 视频效率加速

PHP 7.3.28 反序列化漏洞扫描工具怎么使用

冬芳姑娘_7629

冬芳姑娘_7629

发布时间:2026-10-27 15:00:38

|

101人浏览过

|

来源于php中文网

原创

PHP 7.3.28已停止维护且存在高危反序列化风险,需通过静态分析(RIPS)、动态探测(PHPGGC+Burp)和依赖扫描(Security Checker)三步结合识别;其不支持allowed_classes语法,凡可控输入调用unserialize()即视为高危。

php 7.3.28 反序列化漏洞扫描工具怎么使用

PHP 7.3.28 属于已停止维护的版本(官方自2021年12月起终止支持),该版本存在多个已知反序列化相关风险,如未校验输入时调用 unserialize()、配合危险类(如 Monolog, SwiftMailer, Laravel 旧组件)可能触发 POP 链执行。扫描它不能只靠“一键工具”,而要结合静态分析 + 动态探测 + 框架特征识别三步走。


? 一、确认是否真在用 PHP 7.3.28 并暴露反序列化入口

先别急着扫,先人工验证风险面:

  • 检查 Cookie、POST 参数、HTTP Header 中是否存在形如 O:, a: 开头的 Base64 或明文序列化字符串(例如 Cookie: prefs=OTp7czozOiJuYW1lIjtzOjM6ImFkbSI7fQ== 解码后是 a:1:{s:3:"name";s:3:"adm";})
  • 查看代码中是否有类似 unserialize($_COOKIE['data'])、unserialize(file_get_contents($cache)) 等调用,且未限制 allowed_classes 或未做输入过滤
  • 注意:即使加了 allowed_classes => false,若类中 __wakeup/__destruct 含文件写入、日志记录、命令拼接等逻辑,仍可能被链式利用

✅ 小提示:PHP 7.3.28 不支持 unserialize() 的 allowed_classes 数组语法(该语法从 7.4+ 引入),所以旧版只要调用 unserialize() 且输入可控,基本就等于高危。


?️ 二、推荐组合使用三类扫描工具

1. 静态扫描:RIPS(专为 PHP 设计)

适用于源码可得场景(如内部审计、CI 流程):

立即学习“PHP免费学习笔记(深入)”;

btpanel phpsite 宝塔面板PHP网站
btpanel phpsite 宝塔面板PHP网站

宝塔面板 PHP 网站管理:站点创建、删除、启停、PHP 版本切换、域名管理、SSL证书管理、伪静态管理、数据库管理

下载
  • 下载 RIPS 3.x(支持 PHP 7.3 兼容语法解析)
  • 上传项目目录,启用「反序列化函数调用」+「魔术方法敏感操作」规则集
  • 关键检测项包括:
    • unserialize( 出现在用户输入路径上(如 $_GET, $_POST, $_COOKIE, $_REQUEST)
    • 类中定义了 __wakeup, __destruct, __toString 且内部调用 system, file_put_contents, include, call_user_func
    • unserialize() 调用前无 preg_match('/^[a-zA-Z0-9\+\=\/\{\}\[\]\:\;]+$/') 类型白名单校验

2. 动态探测:PHPGGC + Burp Suite 协同

适用于黑盒测试(如渗透测试、上线前验收):

  • 安装 PHPGGC(支持 PHP 7.3 兼容链):
    git clone https://github.com/ambionics/phpggc.git  
    cd phpggc && php phpggc -l | grep -i "7.3"  # 查看是否含适配链
  • 常用命令示例(以 ThinkPHP 5.0.23 为例,该版本常见于 PHP 7.3 环境):
    php phpggc ThinkPHP/RCE7 system "id" --base64
  • 将生成的 Base64 字符串,替换到疑似入口参数中(如 ?data=xxx 或 Cookie: data=xxx),用 Burp Repeater 发送,观察响应是否含 uid= 或报错回显
  • ⚠️ 注意:部分链在 PHP 7.3 下因 ZVAL 结构差异会失败,优先试 Monolog/RCE1, SwiftMailer/RCE1, Guzzle/RCE1

3. 依赖成分扫描:Security Checker + Composer Audit

很多反序列化漏洞不在你写的代码里,而在老旧第三方包中:

  • 运行:
    wget https://security.symfony.com/check_lock  
    php check_lock composer.lock
  • 重点盯这些高危组件的旧版:
    • monolog/monolog
    • swiftmailer/swiftmailer
    • laravel/framework
    • phpunit/phpunit

? 三、绕过常见“假安全”陷阱

有些团队以为加了防护就没事,其实不然:

  • ❌ unserialize(base64_decode($input)) 不等于安全 —— Base64 只是编码,不是校验
  • ❌ if (strpos($input, 'O:') === false) 可被 a: 或 C: 绕过,且现代 POP 链大量使用数组和资源类型
  • ❌ 把序列化数据存数据库再读取 ≠ 可信 —— 若写入接口未鉴权(如低权限后台导出配置),照样算外部输入
  • ❌ 用 json_decode() 替换但没设 JSON_THROW_ON_ERROR —— 静默失败后可能 fallback 到 unserialize(),反而更危险

✅ 最终建议动作

立即执行以下三项(不依赖工具也能见效):

  • 搜索全项目:grep -r "unserialize(" . --include="*.php",对每个结果人工判断输入来源是否可控
  • 将所有 unserialize() 调用,按「不可信输入 → JSON 替代」路径迁移(参考 DeepSeek 提供的字段白名单 JSON 方案)
  • 升级 PHP 至受支持版本(至少 8.1+),并启用 unserialize() 的 allowed_classes => [] 严格模式

不复杂但容易忽略。

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

11544

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

6661

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

2175

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

4228

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

4934

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

3871

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

5597

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

4382

2023.11.13

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

80

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP安全与漏洞
PHP安全与漏洞

共12课时 | 2.5万人学习

PHP安全与漏洞
PHP安全与漏洞

共12课时 | 2.5万人学习

墨刀帮助中心
墨刀帮助中心

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn