CVE-2017-9841 phpunit 远程代码执行漏洞复现
漏洞简述
PHPUnit是其中的一个基于PHP的测试框架。PHPUnit 4.8.28之前的版本和5.6.3之前的5.x版本中的Util/PHP/eval-stdin.php文件存在安全漏洞。远程攻击者可通过发送以‘<?php’字符串开头的HTTP POST数据利用该漏洞执行任意PHP代码。
漏洞影响版本
- 4.8.19 <= PHPUnit <= 4.8.27
- 5.0.10 <= PHPUnit <= 5.6.2
漏洞poc
https://github.com/RandomRobbieBF/phpunit-brute
漏洞环境搭建
使用vulhub进行复现,访问下面的地址。
http://your-ip:8080/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
能访问该文件路径即存在漏洞。
漏洞复现
可以使用上面的poc进行验证,爆破phpunit的路径。
获取到漏洞路径后,直接post php代码即可执行。
溯源排查
以该容器为例,排查Apache的日志即可。但是容器中把日志的输出重定向到标准输出,所以需要通过docker logs查看日志。同时一旦容器停止运行标准输出的日志也会没有。
排查关键词:eval-stdin.php,200
docker-compose logs | grep eval-stdin.php | grep 200
修复方式
厂商已发布了漏洞修复程序,请及时关注更新:
https://github.com/sebastianbergmann/phpunit/commit/284a69fb88a2d0845d23f42974a583d8f59bf5a5
微信赞赏支付宝赞赏
发表评论