Full Path Disclosure sur le fichier rss-functions.php

rss-functions.php

Full Path Disclosure ou (FPD) est un faille de sécurité qui concerne le fichier /wp-includes/rss-functions.php sur les sites WordPress.

 

Qu’es ce qu’une Full Path Disclosure ?

Il s’agit d’une vulnérabilités permettent de voir le chemin d’accès au webroot dans la fenêtre du navigateur. Si votre site est assujettie à cette faille, le simple fait de taper l’URL complète du fichier rss-functions.php (ex: http://site-wordpress.fr/wp-includes/rss-functions.php) affichera dans le navigateur une Fatal error ainsi que le chemin complet depuis la racine du serveur jusqu’à ce fameux fichier rss-functions.php.

 

Fatal error: Call to undefined function _deprecated_file() in /homepages/19/d253383552/htdocs/wp-includes/rss-functions.php on line 8

 

La faille FDP est executé en injectant un caractère inattendu à certains paramètres d’une page web. Le script défaillant, ne s’attendant pas à l’injection de ce caractère, retourne un message d’erreur dans lequel figure, le nom de la fonction PHP incriminé _deprecated_file(), le webroot /homepages/19/d253383552/htdocs/ ainsi que le numéro de ligne où se trouve la fonction line 8.

 

Quel sont les risques ?

Les vulnérabilités FPD sont généralement perçues comme des menaces à faibles risques. Toutes fois, il ne faut pas oublier que les messages d’erreurs sont des gardes fous, qui s’adressent aux développeurs afin qu’ils puissent garantir code stable et intègre et non aux utilisateurs.

 

Local File Include et injection SQL

La faille Local File Include (LFI) permet l’injection de fichier malveillant sur le serveur. Quant à l’injection SQL appelé aussi faille XSS, permet quant à elle d’injecter du code (écrit en JavaScript) malveillant interprété par le serveur.

Mais pour s’assurer que ces scripts malveillants pointent bien vers les bons fichiers, il est nécessaire de connaitre son emplacement dans l’arborescence.

Et c’est à ce moment précis qu’une petite faille du type Full Path Disclosure est la bienvenue. Devenant pour l’occasion un véritable mouchard.

Comment combler la faille ?

 

La faille Full Path Disclosure peut être facilement comblé en désactivant l’affichage des messages d’erreur par le serveur Apache. Deux méthodes sont possibles:

Depuis le fichier de configuration de PHP, /etc/php5/apache2/php.ini


display_errors = 'off'

Depuis le fichier de configuration d’Apache, /etc/apache2/apache2.conf


php_flag  display_errors  off

Nota: Les chemins mentionnés ci-dessus s’appliquent au système  Debian et ses dérivée tel que Ubuntu. Il est possible que ces chemins diffèrent en fonction du système d’exploitation utilisé.

 

Le cas 1&1

Pour une raison inconnu, les serveurs Web de chez 1&1 sont configurer avec l’option display_errors = ‘on’. Malheureusement il n’est pas possible de changer ce paramètre sur off.

Pour résoudre ce problème, deux autres méthodes sont encore exploitables.

  1. La suppression pur et simple du fichier rss-functions.php. En effet, ce fichier est une relique, remplacé depuis par rss.php lui aussi un déprécier et remplacé par class-simplepie.php. Si après cette suppression, un plugin ou une fonction du thème rencontre des difficultés avec les flux RSS, rétablissez le fichier rss-functions.php et préférez la seconde méthode.
  2. Editer le fichier rss-functions.php et y ajouter le code ci-dessous juste avant la fonction:

(isset($var) && is_array($var)) ? logfunction() : /*continue*/;

Moins conviviales et pouvant être considérées comme du rafistolage, ces deux dernières méthodes ont un inconvenant commun: Les mise à jour de WordPress. A chaque fois que WordPress est mis à jour, un nouveau fichier rss-functions.php est créé, écrasant à chaque fois vos modifications. C’est pourquoi, il faudra renouveler l’opération après chaque mise à jour.

 

One Comment

Leave a Reply