别心存侥幸了!PHP2Shell 首个“高质量”成功利用实锤,1.6毫秒拿下服务器

前几天我们还在说,PHP2Shell(CVE-2026-109618/109619)虽然闹得沸沸扬扬,但满天飞的 PoC 大多是“哑炮”,各大安全公司也安抚说“只看到了扫描,没有实际入侵”。

很多运维老哥可能心里还暗爽:“只要我 WAF 开得够快,黑客的扫描就追不上我,等周末再慢慢打补丁。”

但现在,请立刻收起这种侥幸心理,因为真家伙来了。

首个高质量“成功利用”实锤

Perplexity 的安全大佬 Adel Karimi 在他的蜜罐里,结结实实地抓到了一次完全成功的远程代码执行(RCE)。Expel 的威胁研究员、大名鼎鼎的 Marcus Hutchins(对,就是当年搞定 WannaCry 的那个大佬)也出面背书,称这是他见过的“最高质量的 PHP2Shell 在野利用确认”。

别心存侥幸了!PHP2Shell 首个“高质量”成功利用实锤,1.6毫秒拿下服务器插图

这次中招的靶子,是运行 PHP 8.4.26 + Apache mod_php 的环境。

黑客可不是简单地发个畸形包让服务器崩溃(DoS),人家是奔着拿权限来的。Karimi 透露了极其硬核的技术细节,看完让人倒吸一口凉气:

  1. 内存泄露被完美利用:黑客利用漏洞,成功从服务器内存中 dump 出了 800 KiB 的解码 cookie 数据。
  2. 精准打击:从这些泄露的内存中,黑客推导出了关键的函数地址,并直接将其用在了后续的执行载荷里,实现了精准的内存寻址。
  3. 唯快不破:客户端确认收到完整响应后,仅仅过了 1.6 毫秒,Shell 命令就在服务器上执行了。

这哪是脚本小子在乱扫?这分明是训练有素的高级玩家,拿着打磨好的真武器在进行精准爆破。

之前的“不成功”,只是因为武器还没造好

回想一下 10 月 21 日补丁发布前后的乱象。当时 Cloudflare、watchTowr 等大厂都出来安抚人心,说“只看到扫描和指纹识别,没有已知入侵”。AWS 也说“攻击负载五花八门,但大概率打不进去”。

现在回头看,那些满天飞的 PoC 确实只是“玩具”。黑客们当时只是在用半成品脚本测试网络的连通性和指纹,顺便掩护真正的高手在暗处调试这套“内存泄露+地址推导”的绝杀连招。

现在,连招调试完毕,真正的自动化屠杀可能才刚刚开始。

雪上加霜:旧伤未愈,又爆新坑

如果你以为赶紧把 PHP 升到最新版就万事大吉了,那 PHP 官方可能会再给你一记闷棍。

就在周五,PHP 安全团队又弱弱地分享了一个全新的 RCE 漏洞(CVE-2026-115560)。

最搞人心态的是:这个新漏洞目前还没有补丁!

虽然官方说触发条件很苛刻(需要“异常的配置和代码组合”),但在黑客眼里,只要存在,就值得用自动化脚本去全网盲扫一遍。

官方给出的唯一“续命”建议是:在 php.ini 里把 session.upload_progress.enabled 设置为 0。

巧的是,这个配置在修 PHP2Shell 的时候官方也建议过。所以,如果你之前听了劝改了这个配置,恭喜你,你现在对这两个漏洞都有一定的免疫力;如果你没改,现在、立刻、马上再去改一次。

运维保命 To-Do List(终极版)

别再看戏了,赶紧干活:

  1. 确认 PHP 版本:必须升级到 8.5.12、8.4.27、8.3.36 或 8.2.35。别信什么“WAF 能挡住”,在 Apache mod_php 环境下,恶意请求在接触你的业务代码前就能把服务器拿下,WAF 如果配置不当或者被绕过,就是形同虚设。
  2. 检查“续命”配置:全局搜索 session.upload_progress.enabled,确保它是 0。这能同时缓解 PHP2Shell 的残余风险和无补丁的新 RCE 漏洞。
  3. 查杀异常进程:重点排查 Apache/Nginx 的 worker 进程,看看有没有莫名其妙 spawned 出来的 bash、sh、或者外连的 python/perl 脚本。
  4. 关注日志里的“神仙操作”:如果你的日志里出现了大量针对 session 处理、或者带有超长/畸形 payload 的 POST 请求,别犹豫,直接封 IP 并排查服务器是否已被植入后门。