
Composer è uno strumento di gestione dei pacchetti PHP. Utilizzando Composer per installare un pacchetto, verrà creata una cartella vendor nella directory corrente e tutti i file verranno inseriti al suo interno. Di solito questa directory deve essere posizionata al di fuori della directory web, in modo che gli utenti non possano accedervi direttamente.
phpunit è uno strumento di test unitari per PHP. Nelle versioni 4.8.19 ~ 4.8.27 e 5.0.10 ~ 5.6.2, il file vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php contiene il seguente codice:
eval('?>'.file_get_contents('php://input'));
Se questo file viene accesso direttamente da un utente, si verifica una vulnerabilità di esecuzione di codice remoto.
Link di riferimento: http://phpunit.vulnbusters.com
Esegui i seguenti comandi per avviare un ambiente PHP, in cui phpunit è installato nella directory web.
docker-compose build
docker-compose up -d
L'ambiente web sarà avviato su http://your-ip:8080.
Invia direttamente il codice PHP come corpo POST a http://your-ip:8080/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php:
