WP Hide Security Enhancer est une extension de sécurité qui cache une installation WordPress. Elle a été développée par NSP Code. Le 15 février 2017, l’auteur du plugin a été alerté et les correctifs ont été publiés rapidement, merci à lui.
Faille critique
WP Hide Security Enhancer en version 1.3.9.2 ou moins est victime d’une vulnérabilité de type Arbitrary File Download. Elle permet à un visiteur de télécharger n’importe quel fichier de votre installation. Comme vous le devinez, c’est une faille critique.
Comment ça marche ?
Malheureusement c’est très simple à exploiter :
Dans le dossier /router/
vous trouverez le fichier file-process.php
.
Ce fichier n’est pas inclus dans WordPress donc il n’y a pas de moyen pour un plugin de sécurité WordPress d’attraper ça. Vous avez besoin d’un Web Application Firewall pour y arriver.
Mais arriver à quoi ? Tout ce qu’un attaquant a besoin c’est 2 paramètres dans l’URL comme demandé en ligne 8 :
http://example.com/wp-content/plugins/wp-hide-security-enhancer/router/file-process.php?action=…&file_path=…
Maintenant, la ligne 15 attends un fichier existant. Un attaquant connait un fichier qui existe et qui est interessant pour lui, il s’agit dewp-config.php
.
http://example.com/wp-content/plugins/wp-hide-security-enhancer/router/file-process.php?action=…&file_path=/wp-config.php
Encore, la ligne 47 attends une action nommée style-clean
aussi simple que ça.
http://example.com/wp-content/plugins/wp-hide-security-enhancer/router/file-process.php?action=style-clean&file_path=/wp-config.php
On y va, cette URL sera utilisée par un pirate pour afficher à l’écran le contenu de ce fichier.
Suis-je protégé?
Vous avez peut-être ajouté des scripts pour “protéger votre fichier wp-config.php
“. Je suis au regret de vous dire que cela ne fonctionne PAS comme ça.
.htaccess
Vous avez surement déjà lu qu’on peut ajouter des règles dans le fichier .htaccess
pour le protéger le fichier de config, des règles comme ça :
Cela ne vous protège PAS de cette vulnérabilité. Pourquoi ? Car cette protection n’interdit que l’accès direct au fichier via un navigateur, mais pas depuis un script PHP, chose qui est ici utilisé.
Remontez le
Vous avez aussi surement lu qu’on pouvait remonter d’un cran dans l’arborescence le fichier wp-config.php
, comme ça il n’est plus accessible depuis votre URL en front-office. Oui c’est vrai, mais c’est tout. Un script PHP peut toujours y accéder :
http://example.com/wp-content/plugins/wp-hide-security-enhancer/router/file-process.php?action=style-clean&file_path=/../wp-config.php
Comment rester en sécurité avec ce genre de faille ?
Il arrive souvent que des failles donnent un accès au fichier wp-config.php
pour ceux qui se souviennent en 2014 avec revslider. C’était exactement la même chose.
Vous vous devez de bloquer certains mots dans vos URLs, en effet, ni WordPress, ni vous, ni un utilisateur, ni un client n’a besoin de toucher à ce nom de fichier.
Si vous avez SecuPress Pro, vous êtes déjà protégé(e) de ce genre d’attaques.