结论:PHP2Shell 是 PHP 环境里一类能把「上传文件/参数」直接变成服务器上可执行 Shell 的漏洞统称,后果基本等同于服务器被拿到控制权。
①它的核心问题在于用户可控输入被拼进系统命令或文件路径,典型来源是上传功能没校验扩展名、文件名被直接拼进 exec/system 调用、或临时文件处理不当,攻击者传一个伪装成图片的 PHP 文件再触发解析,就能执行任意命令。
②后果按严重程度依次是:读取站点配置和数据库密码、篡改页面挂马、写入 WebShell 长期驻留、用服务器当跳板扫描内网,最坏情况是整台机器连同同机其他站点一起沦陷。
③排查上重点看上传目录是否可执行 PHP、代码里有没有把 $_FILES 或 $_GET 的值直接传给 exec、system、popen、include,以及日志里有没有异常 POST 后紧跟可疑文件访问。
④修复思路是上传目录关闭 PHP 解析、文件名重命名并白名单校验扩展名、命令调用改参数化或干脆去掉,同时把 PHP 版本和依赖升到最新。