对比

PHP2Shell 与 Log4Shell 对比

两者都是存在于互联网大量基础软件中的无需认证远程代码执行。最大的区别是:Log4Shell 极易利用但很难排查;PHP2Shell 更难利用但更容易排查。

最后核实 2026-10-22

PHP2ShellLog4Shell
是什么PHP 解释器中的两个内存安全漏洞Java 日志库 Log4j 2 中的 JNDI 查找注入
CVECVE-2026-109618、CVE-2026-109619CVE-2021-44228(及后续 CVE)
披露时间2026 年 10 月 21 日(10 月 20 日泄露)2021 年 12 月 9 日(当天即有公开利用)
评分CVSS 4.0 9.2CVSS 3.1 10.0
是否需要认证不需要不需要
利用难度较难:构造 multipart 请求,需多次尝试以适配每个目标的内存布局极易:只要一个 ${jndi:ldap://…} 字符串出现在任何会被记录日志的地方
影响面运行有漏洞 PHP 的所有网站——互联网的很大一部分使用 Log4j 2.0–2.14.1 记录攻击者输入的所有 Java 应用——服务器、设备、游戏
排查受影响系统相对容易:它就是 PHP 运行环境,逐台服务器或容器检查版本即可很难:Log4j 作为传递依赖藏在各种 JAR 包和厂商产品里
修复方式升级 PHP 并重启 worker升级 Log4j(经历多轮:2.15 → 2.16 → 2.17)并重新构建每个受影响的应用
由谁修复管理服务器的人:你、你的主机商或云服务商每个打包了 Log4j 的厂商,以及所有运行这些应用的人
攻击态势发布当天已有早期攻击报告;尚无公开的已证实入侵数小时内即出现大规模利用;被列入 CISA KEV
不执行代码也能窃取数据能——通过内存泄露路径间接可以(通过 DNS 查询外泄环境变量)

相似之处

  • 无需登录、无需用户交互——只需网络请求。
  • 都是大多数网站所有者从未关注过的底层软件,所以大量系统会在很长时间内保持未修复。
  • 升级应用没有用,有漏洞的是更底层的那一层。

不同之处

  • 利用成本。Log4Shell 只需复制粘贴一个字符串;PHP2Shell 是一条需要针对每个目标调整的内存破坏利用链。预计一开始攻击者数量更少但能力更强——一旦可靠的工具扩散开来,滥用就会更广泛。
  • 资产盘点。“哪些服务器在跑 PHP、是什么版本?”几小时内就能回答清楚。而找出 Log4j 曾让很多机构花了好几周。
  • 长尾。PHP 的长尾是虚拟主机,以及仍在运行 PHP 7.x 和 8.0 / 8.1、无人维护的服务器——这些版本不会再有新版本。

常见问题

PHP2Shell 和 Log4Shell 一样严重吗?+

影响面相近,最坏后果也相同(无需认证的远程代码执行),但更难利用:Log4Shell 只要在任何被记录的字段里放一个字符串就能生效,而 PHP2Shell 的利用必须针对每个目标调整。PHP2Shell 也更容易盘点和修复,因为它位于 PHP 运行环境中,而不是藏在应用依赖里。

针对 Log4j 的修复或扫描工具对 PHP2Shell 有用吗?+

没用。两者毫无关系:Log4Shell 在 Java 日志库里,PHP2Shell 在 PHP 解释器里。扫描工具不同,修复方式也不同。

相关页面