Une faille XSS dans WordPress 3.1 et 3.2.1
Une vulnérabilité vient d'être découverte dans les dernières versions de WordPress. Il s'agit d'une faille de type XSS présente dans la fonction de recherche et qui affecte certains thèmes uniquement. Pour contrer ce type d'attaque, la solution est de modifier le code du fichier search.php.
Voici deux exemples d'utilisation. Pour WordPress version 3.2.1 :
http://www.futurefisherman.org/?s=%3CIMG%20%22%22%22%3E%3CSCRIPT%3Ealert%28%22XSS%22%29%3C/SCRIPT%3E%22%3E
Et pour WordPress 3.1 :
http://blogs.comodo.com/?s=%3Cimg%20src=http://www.tux-planet.fr/public/hack/images/no-permission.jpg%20align=center%3E
Si vous êtes vulnérable à cette faille, voici une solution donnée par Aryo :
- Allez dans "Apparence > Editeur" dans l'administration WP
- Choisissez "Résultats de recherche (search.php)"
- Trouvez la ligne qui correspond à l'affichage de la requête. Par exemple "Résultat de la recherche pour "<?php echo $s; ?>"
- On aperçoit qu'en effet, l'affichage n'est pas protégé, alors on s'en charge. Remplacez <?php echo $s; ?> par <?php echo htmlspecialchars($s); ?>
- Vérifiez que la faille n'est plus exploitable
14 Commentaires pour "Une faille XSS dans WordPress 3.1 et 3.2.1"
Flux des commentaires de cet article Ajouter un commentaireC'est plutôt un problème du thème utilisé dans ces sites, pas une faille de WordPress.
@alex : Oui c'est vrai, chez moi par exemple sa ne marche absolument pas du moment où le theme n'affiche pas les mots-clés recherché.
Moi c'est pareil ça n'a pas l'air de marcher, pourtant, je n'ai rien fait de spécial...
idem ça ne marche pas chez moi. La faille est présente dans certain thème, pas dans WordPress.
Bonjour,
Oui pour moi aussi. j'ai testé avec mon site, cela ne marche pas. cf : http://www.freva.net/?s=%3CIMG%20%22%22%22%3E%3CSCRIPT%3Ealert%28%22XSS%22%29%3C/SCRIPT%3E%22%3E
Je suis d'accord aussi pour dire que c'est plus une question de thème que de grosse vulnérabilité worpdress.
Je profite au passage que j'aime beaucoup votre blog.
Bonne journée.
Je profite au passage pour dire que j'aime beaucoup votre blog.
Effectivement, cela ne marche pas pour tous les sites. J'ai quand même trouvé quelques blogs français vulnérable. J'ai modifié l'article pour préciser que cela n'affectait que certains thèmes.
@Benjamin Fréva : merci
Oui, ce n'est pas WordPress, le problème dans le thème. J'ai envoyé http://packetstormsecurity.org/ et il est retiré maintenant. Désolé. Mais nous savons maintenant au sujet des problèmes avec les thèmes WP.
Quelqu'un s'aurait comment réparer cette faille sur le thème zBench ?
En effet, il n'y a pas de fichier search.php ... Du coup je ne sais pas trop où chercher, je ne vois nul part le résultat de la recherche dans les fichiers PHP.
@BlueRat : Hmm... Je n'arrive pas à reproduire la faille avec le thème zBench. Justement, comme il n'y a pas de fichier search.php, la recherche me renvoie directement sur la page 404. L'intitulé de la recherche ne s'affiche pas, et donc il n'exécute rien...
Ca se passe pas comme ça chez toi ?
@Arthur : En effet, quand je fais une recherche qui n'aboutit pas, j'ai une page 404. Si la recherche aboutit à des résultats, j'ai les résultats qui s'affichent...
Mais quand j'utilise la faille XSS (avec l'alert) dans la barre URL, j'ai bien l'alerte Javascript qui s'affiche...
Sur le CSS, j'ai la version 1.2.7 (a priori la dernière) si ça peut t'aider (installé avec WP 3.2.1)....
J'ai fait passer l'info : http://www.scout123.net/une-faille-dans-wordpress-3-1-et-3-2-1.html.
P.S. : C'est moi qui a signalé la faille à Korben ;).
@BlueRat : Avec les mêmes version je tombe sur l'erreur 404, moi...
De toute façon, regarde le code source de ta page de "résultat" pour voir à quel endroit est appelé la balise et essaye de le protéger dans le code de ton thème.
hahaha
Pardon.
Quand un plugin contient une faille, ce n'est pas une faille WordPress, vous êtes d'accoord ? et bien ici j'ajoute et répète que ce n'est pas une faille de WordPress non plus.
WordPress met à disposition une fonction qui filtre la recherche afin de pouvoir l'afficher sans peur des Reflected XSS. Cette fonction s'appelle "get_search_query()".
Si le codeur d'un thème code mal son thème et fait un "echo $_GET['s']", ce n'est pas la faite de WordPress !
Merci de modifier le titre de l'article en "Codez mieux vos thèmes pour éviter une XSS"
A+