目标达成 感谢每一位支持者 — 我们达成了 100% 目标!

目标: 1000 元 · 已筹: 1000

100.0%

CVE-2017-9841 — 神龙十问 AI 深度分析摘要

Q1这个漏洞是什么?(本质+后果)

🚨 **本质**:PHPUnit 测试框架中的 `eval-stdin.php` 文件存在远程代码执行 (RCE) 漏洞。 💥 **后果**:攻击者可通过发送特定 HTTP POST 数据,**执行任意 PHP 代码**,完全控制受影响的服务。

Q2根本原因?(CWE/缺陷点)

🔍 **缺陷点**:`eval-stdin.php` 文件直接使用了 `eval('?>'.file_get_contents('php://input'));`。 ⚠️ **原因**:未对用户输入(stdin)进行任何过滤或验证,直接将其作为 PHP 代码执行。

Q3影响谁?(版本/组件)

📦 **受影响组件**:PHPUnit 测试框架。 📅 **具体版本**: - PHPUnit **4.8.28 之前**的版本 - PHPUnit **5.6.3 之前**的 5.x 版本 🌐 **常见场景**:TYPO3、PrestaShop、Drupal 等 CMS 模块中意外包含的 PHPUnit 库。

Q4黑客能干啥?(权限/数据)

👑 **权限**:以 Web 服务器进程权限执行代码。 📂 **数据**:可读取、修改、删除服务器上的任何文件,甚至获取服务器 Shell。 🔓 **范围**:若 Web 目录可访问,危害极大。

Q5利用门槛高吗?(认证/配置)

📉 **门槛低**: - **无需认证**:远程攻击者即可利用。 - **无需复杂配置**:只要 `eval-stdin.php` 文件在 Web 根目录下可访问即可。 - **简单 POST**:发送以 `<?php` 开头的 POST 数据即可触发。

Q6有现成Exp吗?(PoC/在野利用)

🛠️ **有现成 Exp**: - GitHub 上有多个 PoC 脚本(如 `CVE-2017-9841 detector`、`phpunit-brute`)。 - 存在自动化扫描工具(如 `laravel-phpunit-rce-masscaner`)。 - 在野利用案例包括 PrestaShop 1.7 模块。

Q7怎么自查?(特征/扫描)

🔎 **自查方法**: 1. **路径探测**:尝试访问常见路径,如 `/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php`。 2. **POST 测试**:向该路径发送 `<?php phpinfo(); ?>`,若返回 PHP 信息则存在漏洞。 3. **工具扫描**:使用 `phpunit-brute.py` 等工具批量探测。

Q8官方修了吗?(补丁/缓解)

🛡️ **官方修复**: - 升级 PHPUnit 至 **4.8.28+** 或 **5.6.3+**。 - 参考链接:[PHPUnit PR #1956](https://github.com/sebastianbergmann/phpunit/pull/1956)。 - 厂商如 Gentoo 已发布 GLSA-201711-15 修复指南。

Q9没补丁咋办?(临时规避)

🚧 **临时规避**: 1. **删除文件**:直接从 Web 根目录删除 `eval-stdin.php`。 2. **权限控制**:确保 `vendor` 目录不在 Web 可访问范围内。 3. **WAF 拦截**:配置 WAF 拦截包含 `php://input` 或 `eval` 的 POST 请求。

Q10急不急?(优先级建议)

🔥 **优先级:高**。 - **利用简单**:无需认证,脚本化攻击容易。 - **影响广泛**:许多 CMS 默认包含此库。 - **建议**:立即检查并升级 PHPUnit 或移除 Web 目录下的测试文件。