免责声明
本文发布的工具和脚本,仅用作测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。
如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明,我们将在收到认证文件后删除相关内容。
文中所涉及的技术、思路及工具等相关知识仅供安全为目的的学习使用,任何人不得将其应用于非法用途及盈利等目的,间接使用文章中的任何工具、思路及技术,我方对于由此引起的法律后果概不负责。
漏洞概况
XAMPP是一款免费且开源的跨平台Web服务器解决方案软件包,主要集成了Apache服务器、MySQL数据库、PHP编程语言以及Perl等组件。
PHP CGI Windows平台远程代码执行漏洞该漏洞的利用前提是:
-
直接用PHP-CGI启动 或者 php-cgi.exe/php.exe 暴露于cgi目录下(例如 /cgi-bin/ )
-
仅影响Windows平台且使用了如下语系(简体中文936/繁体中文950/日文932等)
可以看出,此漏洞对于环境要求比较苛刻,但是对于使用XAMPP默认配置搭建的PHP Web服务(Windows默认配置部署时,满足以上所有条件),攻击者可利用该漏洞执行任意命令,控制服务器。
综合处置优先级:高
基本信息 | 漏洞编号 | |
漏洞类型 | 命令执行 | |
利用条件评估 | 利用漏洞的网络条件 | 远程 |
是否需要绕过安全机制 | 不需要 | |
对被攻击系统的要求 | 1. 使用XAMPP默认配置搭建的PHP Web服务 2. Windows版本 | |
利用漏洞的权限要求 | 无需任何权限 | |
是否需要受害者配合 | 不需要 |
漏洞影响范围
产品名称 | PHP-PHP |
受影响版本 | 8.3 ≤ PHP Version < 8.3.8 8.2 ≤ PHP Version < 8.2.20 8.1 < PHP Version < 8.1.29 |
影响范围 | 万级 |
有无修复补丁 | 有 |
漏洞复现
修复方案
官方修复方案:
官方已发布安全更新,建议前往官网(https://www.php.net/downloads.php)升级至以下安全版本:8.3.8、8.2.20、8.1.29。针对其他版本,PHP官方已不在维护,建议根据实际情况采取相应缓解措施。
临时修复方案:
-
使用防护类设备对相关资产进行防护。拦截请求url中 %ad、allow_url_include、auto_prepend_file 等特征的请求。
-
对于使用 XAMPP for Windows 的用户,确认不影响业务的前提下,可以禁掉 PHP CGI 功能。具体操作为:编辑 /xampp/apache/conf/extra/httpd-xampp.conf,注释掉 ScriptAlias /php-cgi/ "C:/xampp/php/"。