检测公开网站、检查本地配置和日志,或查找开源应急工具。每种结果都会说明依据和局限。

01 / URL

检测你的网站

输入你自己的公开网站地址。我们查看一个页面及最多两次跳转,寻找 PHP 响应头和平台线索,不尝试利用漏洞。

可选的在线检测会把地址发送给本站 Cloudflare 服务,用于 DNS 解析和普通 GET 请求。查询参数和片段会被移除。手动版本、配置和日志始终在当前浏览器处理。

PHP / ?

不知道自己用的 PHP 版本?

WordPress:进入“工具 > 站点健康 > 信息 > 服务器”,私下记录 PHP 版本。面板:选择具体域名及其 PHP 处理器,不要只看面板默认值。有 SSH:将 php -v 与实际服务该域名的 FPM、Apache 服务或容器对照。不同站点、命令行任务和副本可能各用不同版本,不要公开 phpinfo 页面。

02 / LOG

排查可疑日志线索

粘贴日志片段或选择文本文件。工具按次数和行号标出内存错误、进程崩溃、HTTP 错误及异常 PHPSESSID。命中不代表确认入侵,没有命中也不能排除。

本地上限:配置 100 KB / 2,000 行,日志 2 MB / 20,000 行。输入不会上传。结果只显示已识别设置,或日志计数和行号,不回显日志原文及 Cookie 值。完成后请清空表单。

是攻击尝试,还是已经入侵? →

03 / PHP INI

检查 PHP 配置

粘贴相关 php.ini 或 FPM 池配置。这里只分析文本,看不到继承配置、逐请求覆盖,也无法证明设置已经生效。这些措施不能代替补丁。

本地上限:配置 100 KB / 2,000 行,日志 2 MB / 20,000 行。输入不会上传。结果只显示已识别设置,或日志计数和行号,不回显日志原文及 Cookie 值。完成后请清空表单。

内存控制和进程回收的局限 →

GitHub 应急工具目录

Apache-2.0

OpenAI PHP 版本检测器

Apache-2.0。Node.js 版本资产辅助工具,可查看本机或公开响应头并输出 JSON。在授权资产上运行前先读 README。隐藏响应头、厂商回移补丁、CLI 与 Web 版本不同都会影响结论,不能作为网站无法被利用的保证。

openai/php2shell-checker ↗
BSD-3-Clause

Corelight Zeek / Suricata 规则

BSD-3-Clause。防御性的网络规则,Zeek 7+ 支持请求、会话关联及独立版本资产提示。安装 Zeek 包不会自动加载 Suricata 规则。先验证配置、TLS 可见性及误报,敏感环境可将 notice_body_sample_bytes=0,避免告警中采样正文。

corelight/php2shell-detect ↗
EUPL-1.2

NCSC-NL 应急资料库

EUPL-1.2。持续维护的应急资料与受影响软件清单,可用于分配负责人、追踪厂商修复。它不是自动扫描全网资产的工具,清单也可能不完整,仍须保留自己环境的软件包与部署证据。

NCSC-NL/php2shell ↗
Apache-2.0

Trivy 容器与 SBOM 检查

Apache-2.0。通用镜像、软件包资产和漏洞工具,适合寻找镜像内嵌的 PHP 包并检查重建结果。覆盖取决于漏洞数据库、包识别和厂商数据,不能把无告警当作两个 PHP2Shell 漏洞都已修复的确证。

aquasecurity/trivy ↗
MIT

Composer audit

MIT。检查 Composer 管理的应用依赖公告,可作为额外应用层检查。PHP 解释器不是 Composer 库,composer audit 通过并不能升级 PHP、审查主机或排除这次入侵。

composer/composer ↗
MIT

Syhunt Apache 临时缓解示例

MIT。社区提供的请求限制和 multipart 阻断示例,只覆盖部分路径,可能影响正常上传,必须先测试。Apache php_value 示例不能原样套用到 CGI/FastCGI。只将其作为经过审核的临时控制,不当作完整防护。

syhunt/php2shell-protection ↗

免费扫描能告诉我是否已经被黑吗?

不能给出确证。公开响应头只能提示版本,本地日志规则只能找线索,看不到完整运行时、缺失的历史和纯内存泄露。先按引导盘点,保全现有证据并关联日志。如果出现未授权账号、异常进程或无法解释的敏感信息泄露,应隔离并联系主机商或应急人员。

请主机商提供证据,而不只是一句已安全

发给主机商的确认消息
请确认我的域名所使用的 PHP Web 运行时是否已修复 CVE-2026-109618 和 CVE-2026-109619 两个漏洞。请提供完整软件包或构建版本、厂商安全公告或变更记录,以及所有相关 FPM/Apache 工作进程、容器副本和常驻进程已替换或重启的确认。同时请说明能否协助审查留存的网站访问、PHP 和进程日志,排查可疑活动。

一手来源与延伸阅读

PHP security team阅读原文 ↗CVE-2026-109618阅读原文 ↗CVE-2026-109619阅读原文 ↗

研究解读与实用攻略

>_

PHP2Shell 工具箱

检测公开网站、检查本地配置和日志,或查找开源应急工具。每种结果都会说明依据和局限。

01

用通俗的话理解 PHP2Shell

PHP 是网站的运行引擎,WordPress、Laravel 和插件运行在它上面。更新插件不等于更新 PHP。这两个运行时内存安全漏洞可能让异常请求清理演变成信息泄露或代码执行。公开网站检测只能寻找线索,实际 Web 运行时和补丁必须由主机商或管理员确认。

02

是攻击尝试,还是已经入侵?

异常 multipart 请求或 WAF 告警可能是攻击尝试。内存耗尽、SIGSEGV/SIGABRT、HTTP 500 突增也可能由正常故障造成。PHP 异常子进程、外连、文件修改或未授权账号值得立即排查,但归因仍需证据。纯内存泄露可能不生成 Webshell 或新文件,文件扫描干净也不能排除。

03

先保全证据,再改动主机

记录发现时间、域名、实例、运行时、异常表现及最近一次可信状态。导出原始访问、错误、WAF 和进程日志并保留时区;有条件时保全云审计记录和经授权的磁盘、内存快照。限制副本访问权限,记录哈希。不要把 Cookie、令牌和用户数据传给公开扫描站。取证前避免清空日志或直接删除可疑文件。

04

如何阅读 Wiz 与 Calif 的技术研究

两份研究解释了请求生命周期的错误为何可能影响后续请求。CVE-2026-109618 官方公告验证了 mod_php RCE;FPM 的易受影响判断基于源码分析,并没有展示该 CVE 的完整 FPM 利用。CVE-2026-109619 则确认了依赖应用条件的 FPM 上传进度利用路径。判断每个 SAPI 的证据范围应看对应 GHSA,不要把所有部署说成同样已验证。

05

Cloudflare:为什么要看响应

Cloudflare 介绍结合请求与源站响应的完整事务检测,可在匹配到可疑响应时阻断可能的数据流出,这对不启动 Shell 的泄露路径也有意义。文章中的上线时间只是历史记录,不代表你的账号和路由已覆盖。请核实规则可用性、排除项和事件日志;直接访问源站和未经过代理的主机,仍需要修复与排查。