1. En-têtes HTTP de cette réponse

Cette page (et toutes les pages de ce TP) renvoie déjà, par défaut, des en-têtes qui révèlent les versions exactes du serveur et de PHP :

X-Powered-By: PHP/8.5.7
Server: Apache/2.4.67 (Debian)

Un attaquant peut ainsi cibler directement les vulnérabilités connues de ces versions précises (Apache/2.4.67, PHP/8.5.7).

2. Page de diagnostic phpinfo() accessible publiquement

Le fichier phpinfo_vulnerable.php est resté accessible sans authentification. Il affiche notamment une section "Environment" qui contient toutes les variables d'environnement du conteneur, y compris les identifiants de connexion à la base de données :

VariableValeur
DB_HOSTdb
DB_PORT3306
DB_NAMEapp_db
DB_USERroot
DB_PASSWORDadmin

Ces informations, combinées au port exposé 3306 de MariaDB, permettraient à un attaquant de se connecter directement à la base de données.

3. Erreurs PHP détaillées

Provoquer une erreur PHP (appel à une fonction qui n'existe pas) avec display_errors = On et error_reporting(E_ALL).

Résultat ci-dessous (la pile d'appels et les chemins de fichiers du serveur sont visibles par n'importe quel visiteur) :


Fatal error: Uncaught Error: Call to undefined function fonction_qui_n_existe_pas_du_tout() in /var/www/html/OWASP/A06-Security-Misconfiguration/info_vulnerable.php:62 Stack trace: #0 {main} thrown in /var/www/html/OWASP/A06-Security-Misconfiguration/info_vulnerable.php on line 62