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

目标: 1000 元 · 已筹: 1000

100.0%

CVE-2017-9841 PoC — PHPUnit 安全漏洞

来源
关联漏洞
标题:PHPUnit 安全漏洞 (CVE-2017-9841)
Description:TYPO3是瑞士TYPO3协会维护的一套免费开源的内容管理系统。PHPUnit是其中的一个基于PHP的测试框架。 PHPUnit 4.8.28之前的版本和5.6.3之前的5.x版本中的Util/PHP/eval-stdin.php文件存在安全漏洞。远程攻击者可通过发送以‘<?php’字符串开头的HTTP POST数据利用该漏洞执行任意PHP代码。
介绍
# phpunit 远程代码执行漏洞(CVE-2017-9841)

composer是php包管理工具,使用composer安装扩展包将会在当前目录创建一个vendor文件夹,并将所有文件放在其中。通常这个目录需要放在web目录外,使用户不能直接访问。

phpunit是php中的单元测试工具,其4.8.19 ~ 4.8.27和5.0.10 ~ 5.6.2版本的`vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php`文件有如下代码:

```php
eval('?>'.file_get_contents('php://input'));
```

如果该文件被用户直接访问到,将造成远程代码执行漏洞。

参考链接:http://phpunit.vulnbusters.com

## 漏洞环境

执行如下命令启动一个php环境,其中phpunit被安装在web目录下。

```
docker-compose build
docker-compose up -d
```

web环境将启动在`http://your-ip:8080`。

## 漏洞复现

直接将PHP代码作为POST Body发送给`http://your-ip:8080/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php`:

![](1.png)
文件快照

[4.0K] /data/pocs/46f26284d8a77997a0eb0a9e2072586ef5bbc2d0 ├── [ 52K] 1.png ├── [ 66] docker-compose.yml ├── [ 410] Dockerfile ├── [ 8] flagA └── [ 968] README.md 0 directories, 5 files
神龙机器人已为您缓存
备注
    1. 建议优先通过来源进行访问。
    2. 如果因为来源失效或无法访问,请发送邮件到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
    3. 神龙已为您对 POC 代码进行快照,为了长期维护,请考虑为本地 POC 付费/捐赠,感谢您的支持。