Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2012-1823 — CVE-2012-1823 - PHP CGI Argument Injection Remote Code Execution (RCE) | Kitploit
工具/GitHubGitHub/k3ystr0k3r/cve-2012-1823
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationPayload Development
GitHubk3ystr0k3r/cve-2012-1823

CVE-2012-1823

CVE-2012-1823 - PHP CGI Argument Injection Remote Code Execution (RCE)

查看仓库
1个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2012-1823 - PHP CGI 参数注入远程代码执行 (RCE)

严重性: 严重 (CVSS 9.8)

CVE: CVE-2012-1823
发布时间: 2012年5月11日
受影响软件: 以 CGI 模式运行的 PHP (php-cgi)
漏洞类型: 参数注入 / 远程代码执行 (RCE)
攻击向量: 网络
是否需要认证: 否


CVE-2012-1823 是 PHP 历史上发现的最重要的远程代码执行漏洞之一。该漏洞影响配置为通过通用网关接口 (CGI) 执行的 PHP 安装,允许未经认证的攻击者远程执行任意 PHP 代码。

与需要 Web 应用程序内部存在缺陷的漏洞不同,此问题存在于 PHP 本身在使用 php-cgi 时。由于漏洞存在于解释器层面,受影响服务器上托管的每个 PHP 应用程序都会变得易受攻击,无论该应用程序是否包含编码缺陷。

该漏洞因其简单性、可靠性以及在互联网上的广泛利用而在 2012 年受到高度关注。即使在披露多年后,互联网范围的扫描仍持续发现易受攻击的系统,并且该漏洞仍然被包含在利用框架和防御检测工具中。


技术摘要

该漏洞存在于 PHP 的 CGI 实现 (php-cgi) 中。

通常,HTTP 查询参数旨在作为用户输入传递给 PHP 脚本。

然而,PHP 错误地处理了不包含等号 (=) 字符的特制查询字符串。

PHP 并没有将查询字符串纯粹视为用户数据,而是错误地将其部分内容解析为直接传递给 PHP 可执行文件的命令行参数。

由于 PHP 支持大量命令行开关(例如 -d),攻击者可以在请求处理过程中覆盖 PHP 运行时配置选项。

这使得攻击者能够:

  • 启用危险的 PHP 指令
  • 禁用安全限制
  • 自动预置攻击者控制的 PHP 代码
  • 执行任意 PHP 命令
  • 完全控制 Web 服务器进程

根本原因在于 php_getopt() 在以下代码中的处理不当:

root@kitploit:~
sapi/cgi/cgi_main.c

具体来说,PHP 在处理缺少等号 (=) 的恶意查询字符串时,未能正确忽略命令行解析。


根因

CGI 可执行文件接受命令行参数。

例如:

root@kitploit:~
php-cgi -d allow_url_include=1

通常这些参数只应来自操作系统。

相反,PHP 错误地允许 HTTP 请求通过特制 URL 注入这些参数。

因此,攻击者可以在目标脚本执行之前操纵 PHP 运行时配置。

这有效地将一个简单的 HTTP 请求转化为针对 php-cgi 的命令行执行。


受影响版本

以下 PHP 版本易受攻击:

版本状态
PHP < 5.3.12易受攻击
PHP 5.4.x < 5.4.2易受攻击

只有使用 CGI 模式 (php-cgi) 的安装受到影响。

以以下方式运行的 PHP:

  • Apache 模块 (mod_php)
  • PHP-FPM
  • 不易受此解析缺陷影响的 FastCGI 实现

通常不受 CVE-2012-1823 本身的影响。


攻击条件

攻击者只需要:

  • 与目标的网络连接
  • PHP 以 CGI 模式运行
  • 无需认证
  • 无需有效用户账户
  • 无需受害者交互

该漏洞可完全远程利用。


利用过程

攻击通常遵循以下阶段:

  1. 发现 PHP CGI 端点。
  2. 发送特制 HTTP 请求。
  3. 注入 PHP 命令行参数。
  4. 覆盖 PHP 运行时设置。
  5. 执行攻击者控制的 PHP 代码。
  6. 获得远程代码执行。

一旦获得代码执行,攻击者通常会:

  • 上传 Web Shell
  • 执行系统命令
  • 读取敏感文件
  • 转储数据库
  • 安装恶意软件
  • 建立持久性
  • 横向移动到内部网络

影响

成功利用会导致 PHP 应用程序完全被攻陷。

潜在后果包括:

  • 远程代码执行
  • 网站完全被入侵
  • 数据库被盗
  • 凭据泄露
  • 恶意软件部署
  • Web Shell 安装
  • 服务器被接管
  • 横向移动
  • 权限提升(取决于服务器配置)

如果 PHP 以提升的权限执行,也可能导致系统级入侵。


CVSS v3.1


为什么这个漏洞如此危险

几个特点使得 CVE-2012-1823 特别具有影响力:

  • 可通过 HTTP 利用。
  • 无需认证。
  • 利用可靠。
  • 解释器级别的漏洞。
  • 影响所有托管的 PHP 应用程序。
  • 公开的利用代码在披露后很快出现。
  • 得到渗透测试框架的支持。
  • 广泛用于自动化互联网扫描活动。

其易于利用与严重影响相结合,导致了大规模的现实世界攻击,并且被列入 CISA 的已知被利用漏洞 (KEV) 目录。


检测

管理员应检查:

  • PHP 版本
  • 部署模式
  • 是否存在 php-cgi
  • Web 服务器配置

指标包括:

  • CGI 可执行文件通过 HTTP 暴露
  • 意外的 PHP 运行时指令
  • 包含编码命令行开关的可疑请求
  • 查询字符串中缺少 '=' 的请求

安全扫描工具,如 Nuclei、Nessus、OpenVAS 和 Metasploit 模块,可以检测易受攻击的配置。


缓解措施

建议的缓解措施包括:

  • 将 PHP 升级到:
    • 5.3.12 或更新版本
    • 5.4.2 或更新版本
  • 尽可能禁用 CGI 模式。
  • 迁移到 PHP-FPM。
  • 限制对 php-cgi 可执行文件的访问。
  • 应用供应商安全补丁。
  • 部署能够阻止恶意 CGI 参数注入尝试的 Web 应用防火墙 (WAF)。

时间线

日期

免责声明

本仓库仅供教育目的、安全研究、漏洞分析和防御测试使用。此处包含的任何信息仅应用于您拥有明确授权的系统。未经授权利用易受攻击的系统是非法且不道德的。

下载工具
指标值
基础分9.8
严重性严重
攻击向量网络
攻击复杂度低
所需权限无
用户交互无
机密性高
完整性高
可用性高
事件
2012年5月漏洞公开披露
2012年5月发布安全补丁
2012年发布公开利用代码
2012年Metasploit 模块发布
随后几年观察到大规模互联网利用
至今仍在漏洞扫描和遗留系统中出现