PHP2Shell 一览
9.2CVSS 评分,认证前 RCE
~70%的网站使用 PHP(Wiz)
10 年以上自 5.4 起所有 PHP 均受影响
63 天从发现到补丁
PHP 引擎本身的两个 CVE(CVE-2026-109618、CVE-2026-109619)让未认证的攻击者能够执行代码或读取服务器内存,无需任何应用漏洞。 Wiz Research 借助前沿 AI 发现了这些漏洞,并在 WordPress、Drupal 和 Joomla 上演示了可用的攻击。
攻击必须到达 PHP,OpenNHP 让它到不了。
每条 PHP2Shell 攻击链都始于一个未认证的请求。在 OpenNHP 之后,该请求在到达 PHP 之前就被丢弃。
补丁竞赛
攻击者在补丁出现之前就已掌握攻击方法。隐藏的服务器无需赢得这场竞赛。
补丁 vs. WAF vs. OpenNHP
| 给 PHP 打补丁 | WAF 规则 | OpenNHP | |
|---|---|---|---|
| 在 CVE 公开前就有效 | ✕ | ✕ | ✓ |
| 需要攻击特征 | — | 是 | 否 |
| 阻止未认证 RCE | ✓ 安装后 | ~ 已知变种 | ✓ |
| 阻止内存泄露 | ✓ 安装后 | ~ 已知变种 | ✓ |
| 对扫描器隐藏服务器 | ✕ | ✕ | ✓ |
| 修复漏洞本身 | ✓ | ✕ | ✕ |
两者相辅相成:OpenNHP 消除未认证的攻击路径,补丁消除漏洞本身。补丁照样要打。
OpenNHP 适用场景
✓ 藏在 OpenNHP 之后
- 管理后台(
/wp-admin、Drupal 管理) - 内部 PHP 应用和后台系统
- 供已知客户端使用的 API
- 预发布和管理服务器
必须保持公开
- 面向匿名访客的网站
- 优先打补丁,配合 WAF 规则
- 隐藏其管理后台和源站访问
授权用户仍可访问被隐藏的应用,因此 OpenNHP 把能尝试攻击的人从“整个互联网”缩小到“你批准的人”。
现在该做什么
1
打补丁
PHP 8.5.12、8.4.27、8.3.36 或 8.2.35,或你的发行版的修复包。
2
盘点
列出无需面向公网的 PHP 服务。
3
隐藏
把它们放到 OpenNHP 之后,让下一个 PHP2Shell 无处可达。
别只听我们说,来 IETF 127 试着攻破它。
资源
需要帮助隐藏你的 PHP 服务?请联系 [email protected].