
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'));
このファイルがユーザーによって直接アクセスされた場合、リモートコード実行の脆弱性が発生します。
参考リンク:http://phpunit.vulnbusters.com
以下のコマンドを実行してPHP環境を起動します。phpunitはWebディレクトリ内にインストールされています。
docker-compose build
docker-compose up -d
Web環境はhttp://your-ip:8080で起動します。
PHPコードをPOST Bodyとしてhttp://your-ip:8080/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.phpに直接送信します。
