怎么安全地检测自己的网站有没有 PHP2Shell 漏洞

WindowsMac更新

PHP 官方 2026 年 10 月 21 日的安全公告列出了修复 PHP2Shell 的版本:8.5.12、8.4.27、8.3.36 和 8.2.35。自查的标准就是这份清单。如果网站的 PHP 版本不低于所在分支的修复版本,公告要求的更新就已经到位。本文信息截至 2026 年 10 月 23 日。

简要回答

把网站的 PHP 版本和修复版本对比,看主机商和你所用软件厂商发出的通知,内置 PHP 的产品可以在 GitHub 上 NCSC-NL 的清单里查。扫描工具代替不了这些。公告给出的修复办法是更新。只检测你自己的网站,或已经得到明确许可的网站。

官方建议检查什么?

PHP2Shell 的各份官方公告都没有让个人用户去跑扫描工具。PHP 公告说,所有处理网页请求的 PHP 都受影响,只有更新才是完整的解决办法。国家互联网应急中心(CNCERT)建议用户先查看 PHP 版本,再对照影响范围判断是否受影响。新加坡网络安全局(CSA)建议检查网页服务器上有没有安装 PHP,包括第三方应用或组件用到的 PHP。英国国家网络安全中心(NCSC)让组织找出哪里在用 PHP、及时更新,并持续关注内置 PHP 的产品的厂商更新。美国 CISA 则要求清点所有运行任何版本 PHP 的系统,并打上修复。

对于有个博客、小网店或社团网站的人来说,归结起来就是两项检查:网站跑的是哪个版本,以及你所依靠的软件和主机商发出了什么通知。

怎么查 PHP 版本?

你需要的是网站实际运行的准确版本号,比如 8.3.36,而不只是“PHP 8”。在 WordPress 和主机面板里去哪里找,找不到时要问主机商什么,见如何查看网站的 PHP 版本。CNCERT 也提醒,命令行和 Web 服务器可能运行不同的 PHP 版本,要用 php-fpm -v 之类的命令查询网站实际使用的版本。

NCSC 有一条提醒在这里很重要:不要只排查旧版本的 PHP。它说使用任何版本 PHP 的组织都会受到影响,所以看起来较新的版本,也要拿去和修复清单对一对。

主机商和其他厂商的通知怎么看?

服务器是主机商在运行,所以它的通知往往是你能得到的最清楚的答案。找一找关于 10 月 21 日 PHP 公告的邮件、状态页面或帮助文章,确认里面写了你的网站所在分支的修复版本号。没有的话,就去问。

PHP 还可能藏在别的产品里。CISA 说,PHP 常常是其他软件的组成部分,用了多少不一定能直接看出来。NCSC 让组织关注第三方厂商的安全更新,因为设备和服务可能内置了 PHP。如果你有 NAS 或带网页管理界面的路由器,就去看厂商自己的安全公告。群晖和威联通是怎么说的,见NAS 与 PHP2Shell。

GitHub 上 NCSC-NL 的清单是什么?

这是荷兰国家网络安全中心(NCSC-NL)在 github.com/NCSC-NL/php2shell 公开的一个仓库。英国 NCSC 的 PHP2Shell 页面说,NCSC-NL 发布了一份可能受影响的、依赖 PHP 的软件产品清单。

仓库说明自己提供的是关于 CVE-2026-109618 和 CVE-2026-109619 的运行信息。它分为三部分:可能受影响的、依赖 PHP 的软件产品清单,检测和缓解材料,以及生成仓库内文件的工具。最新更新表列出日期、供应商、产品、版本、两个漏洞的状态和链接。状态包括 Fix(已修复)、Vulnerable(存在漏洞)和 Investigation(调查中)。README 说,清单会随着情况变化不断更新。

用法是按供应商和产品名找到你在用的产品,再点链接去看供应商自己的公告了解细节。README 没有说这份清单是完整的,所以清单里没有某个产品,不代表它不受影响。

网上的 PHP 漏洞扫描工具能告诉我安不安全吗?

能告诉你一些,但有局限。NCSC 关于漏洞扫描的一般指南说,基础设施扫描工具靠“指纹识别”或“抓取 banner”来工作,也就是收集系统的信息,再和已知有漏洞的产品对照。它说自动扫描比不上渗透测试这类人工检查,网络扫描追求的是广度而不是深度,而且扫描工具可能出现误报(报告一个并不存在的漏洞)和漏报(漏掉一个真实存在的漏洞)。

对 PHP2Shell 来说,扫描工具不在 PHP 官方的建议里,公告给出的修复办法是更新。不管扫描结果怎么说,你仍然需要知道服务器上准确的 PHP 版本,以及它是不是修复版本。如果扫描结果和主机商的说法对不上,请主机商以书面形式确认版本。

检测网站有没有 PHP2Shell,法律上要注意什么?

只检测你自己的网站,或者已经得到明确许可的网站,不要对别人的网站运行攻击代码。网站在主机商的服务器上的话,做版本检查以外的任何事情之前,先问主机商。

下面摘录两地官方网站上的相关条文,只作参考,本文不判断任何具体做法是否违法。

中国大陆。 2009 年《中华人民共和国刑法修正案(七)》在刑法第二百八十五条中增加的第二款规定:“违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或者传输的数据,或者对该计算机信息系统实施非法控制,情节严重的,处三年以下有期徒刑或者拘役,并处或者单处罚金;情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。”2015 年《刑法修正案(九)》为这一条增加了第四款(单位犯罪),没有改动上面这一款。2025 年修订的《中华人民共和国治安管理处罚法》第三十三条也规定,违反国家规定,侵入计算机信息系统或者采用其他技术手段,获取计算机信息系统中存储、处理或者传输的数据,或者对计算机信息系统实施非法控制,造成危害的,处五日以下拘留;情节较重的,处五日以上十五日以下拘留。

新加坡。 《1993 年滥用电脑法》(Computer Misuse Act 1993)第 3 条第(1)款规定,任何人明知而使电脑执行任何功能,目的是在未经授权的情况下取得任何电脑中的程序或数据,即属犯罪,可处不超过 5,000 新元的罚款,或不超过 2 年的监禁,或两者兼施;第二次及以后定罪的,可处不超过 10,000 新元的罚款,或不超过 3 年的监禁,或两者兼施。第(2)款规定,如果犯罪造成损害,可处不超过 50,000 新元的罚款,或不超过 7 年的监禁,或两者兼施。

更多问题

有官方的 PHP2Shell 扫描工具吗?

下面列出的官方页面都没有给个人用户提供扫描工具。NCSC-NL 的仓库里有检测和缓解材料,但 README 没有提到扫描工具。PHP 公告给出的答案是更新到 8.5.12、8.4.27、8.3.36 或 8.2.35。

PHP2Shell 已经被利用了吗?

截至 2026 年 10 月 23 日:CISA 10 月 21 日的警报(10 月 23 日修订)说,截至发布时,它没有观察到这些漏洞在实际环境中被成功利用。CERT-EU 说,初步的概念验证代码(PoC)已经开始流传。CNCERT 说,漏洞技术细节与 PoC 已广泛传播。新加坡 CSA 说,已有针对这些漏洞的大范围利用尝试的报告。威联通的公告说,针对 PHP 的利用尝试已有公开报告。

扫描结果说我的网站有漏洞,怎么办?

把 PHP 版本和修复清单对一对,并请主机商确认。如果不是修复版本,就更新,或者请主机商更新。CNCERT 还建议持续监测 PHP 进程异常退出、异常命令调用、陌生进程和异常文件写入,并留存日志。如果网站本身已经出现异常,见网站被黑了怎么办。

主机商说已经修复,扫描工具却说有漏洞,该信谁?

NCSC 的扫描指南说,扫描工具会出现误报,而公告的修复看的是服务器上的 PHP 版本。请主机商告诉你网站运行的准确版本,自己和修复版本对照。主机商说已修复之后你还要做什么,见主机商说 PHP 已经修复了,我还要做什么?。

防火墙能挡住 PHP2Shell 吗?

CISA 说,在系统更新或打上补丁之前,Web 应用防火墙(WAF)可能提供一定的保护。PHP 公告说,它列出的临时措施能减少暴露,但不能让系统变得安全。修复办法仍然是更新。

来源