Résumé

Une vulnérabilité de type CSS a été découverte dans le fichier phpinfo.php.

C'est une vulnérabilité dont l'exploitation est simple et les conséquences très dangereuses : vol de cookie, qui aboutit à un vol de session (le pirate se fait passer pour vous) sur le site que vous visitez.

Comment fait l'attaquant ?

L'attaque consiste à vous faire cliquer sur un lien pointant vers une page phpinfo.php vulnérable sur le même site, et à vous voler le cookie de session. Sans danger pour un utilisateur sans droit particulier, mais redoutable pour piéger un administrateur.

Démonstration

phase 1

Un administrateur se logge sur son interface d'administration de manière normale. Il charge donc un cookie sur son navigateur qui identifie sa session.

phase 2

D'une manière ou d'une autre, il est invité à cliquer sur un lien piégé pointant vers le site où il est connecté. Cette invitation peut venir de n'importe où : l'important est que le navigateur charge la page correspondante. Cela peut donc venir d'un commentaire du forum qu'il gère ou un email, par exemple.

phase 3

Le lien contient en fait un script javascript qui utilise une faille de phpinfo(), permettant de récupérer le cookie. Pour la démonstration, le script fait simplement apparaître un popup et affiche le cookie de session, mais on peut aussi l'envoyer à la machine de l'attaquant, ou même par mail.

phase 4

Le pirate n'a qu'à utiliser ce numéro de session pour se connecter sur le site visé sans passer par la case 'login'. Il usurpe l'identité de l'administrateur qui peut ne s'apercevoir de rien. Il existe de nombreuses techniques permettant de camoufler l'attaque.

C'est fini

Des pages phpinfo.php, il y en a partout, notamment dans phpMyAdmin. Ce sont donc, par exemple, tous les webmasters ayant installé phpmyadmin qui sont vulnérables.

Solution

Upgrader vers la version 4.4.1

Références

Securityfocus : PHP PHPInfo Cross-Site Scripting Vulnerability

Advisory 18/2005: PHP Cross Site Scripting (XSS) Vulnerability in phpinfo() (Stefan Esser )

PHP 4.4.1 released (PHP)