php2shell无需登录即可攻击,根本原因是php引擎底层内存安全缺陷,发生在http请求解析最早阶段,绕过所有认证流程,利用multipart post处理机制中的oom残留指针和uaf漏洞执行shellcode。

PHP2Shell 不需要登录就能攻击,根本原因在于它不是业务层漏洞,而是 PHP 引擎底层的内存安全缺陷——攻击发生在服务器接收并解析 HTTP 请求的最早阶段,远在用户身份校验、登录逻辑、甚至网站程序启动之前。
漏洞触发点完全绕过认证流程
这两个 CVE(CVE-2026-109618 和 CVE-2026-109619)都作用于 PHP 处理 multipart POST 请求的底层机制。攻击者只需向任意 PHP 接口(哪怕是 /index.php、/upload.php,甚至一个只输出 Hello World 的空文件)发送一个特制的请求,就可能触发:
- 内存耗尽(OOM)时未正确清理状态,导致 longjmp 异常退出后残留非法指针
- 工作进程跨请求复用内存时,未重置全局状态(如错误缓冲区、会话指针、扩展对象),造成释放后使用(UAF)
这些都不是“你写的代码有没有判断登录”的问题,而是 PHP 自己在分配、释放、切换请求内存时出错了。只要 PHP 进程在运行,只要它收到了那个恶意请求,漏洞链就可能被激活。
典型攻击场景不依赖任何用户交互
- 攻击者直接对
https://yoursite.com/test.php发起一个构造好的 multipart 请求(含大量嵌套字段名、空文件控件或超长 header) - 该请求本身不包含 Cookie、Token 或任何认证信息,服务器也不会去查 session 或数据库
- PHP 引擎在解析这个请求过程中崩溃、错乱、跳转,最终把攻击者注入的 shellcode 当成合法指令执行
部署方式越“传统”,风险反而越高
比如 Apache + mod_php 模式:PHP 直接作为 Apache 模块加载,每个请求由同一个长期存活的进程处理。这种模式下,状态污染更易延续,攻击甚至能在你的 WordPress 主程序加载前就完成控制。
所以,它不需要登录,就像不需要征得门锁同意就能撬开整栋楼的地基。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











