Problème de sécurité sur les anciennes versions de WordPress !

Problème de sécurité sur les anciennes versions de WordPress !

La nouvelle a fait le tour de la planète, mais il me semble important de faire un point ici…

Les anciennes versions de WordPress ( inférieur à la 2.8.4 ) sont susceptibles d’être contaminées par un vers (de type worm). Henri du blog 2803, décrit son fonctionnement : “il simule l’enregistrement d’un nouvel utilisateur, utilise une faille de sécurité connue, puis se cache avec l’aide d’un javascript et enfin intègre du spam et du code malicieux au sein de vos articles.”

Si votre blog est à jour, en version 2.8.4, vous n’avez rien à craindre, cette version est immunisée… Pour les autres, vous devez absolument mettre à jour votre installation.

Pour mettre à jour.

La méthode est toujours la même :

  1. Sauvegarder les fichiers via votre client FTP
  2. Sauvegarder votre base de données via phpMyAdmin
  3. Désactiver toutes les extensions
  4. Mettre à jour WordPress (via FTP ou mise à jour automatique)
  5. Réactiver les extensions.

Comment savoir si son blog est contaminé ?

3 choses à vérifier…

Les permaliens :

example.com/category/post-title/%&(%7B$%7Beval(base64_decode($_SERVER%5BHTTP_REFERER%5D))%7D%7D|.+)&%/.

Si vos permaliens contiennent le mot “eval” ou “base64_decode”, vous êtes contaminé.

Les utilisateurs :

Vérifier la liste de vos utilisateurs, si vous êtes le seul administrateur, vous devriez n’avoir qu’un seul compte. Si les inscriptions sont ouvertes, vérifier qu’il n’y a pas un compte nommé “Administrator”

Essayer également la requête SQL proposée par Dougal sur son blog. ( dougal.gunters.org )

Pour tester votre base d’articles, exécuter la requête suivante sur votre installation :

SELECT * FROM wp_posts WHERE post_content LIKE '%<iframe%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<noscript%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%display:%'

Si cette requête SQL renvoie des résultats, vous devez nettoyer chacun des articles contaminés…

Quelques ressources

Le codex traite également du sujet avec la page “Comment nettoyer mon installation après un hacking“.

36 commentaires

  1. Amaury

    Pour la version 2.8.4, le staff dit que c’est ok.

    Les retours utilisateurs sont à prendre avec des pincettes, peut être que la personne était déjà contaminé avant sa MAJ …

    Mais tu as raison, vigilance de mise…

  2. kassataya

    Bonjour,

    Quand je lance la mise à jour automatique de la version 2.8.4 de wp je reçois le message suivant:
    Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 2608815 bytes) in /home1/kassatay/public_html/wp-includes/http.php on line 1324

    Que dois-je faire?

  3. qwerty -

    Bonjour,

    Depuis 1 semaine mon blog n’était plus accessible (erreur 500). J’ai compris en lisant cette page qu’il avait été effectivement contaminé parce que…
    1- Je n’ai jamais fait de mise à jour en 6 mois d’existence ( par peur des conneries – oui c’est pas bien)
    2- Le pb est survenu juste après une “inscription” auquelle je n’ai pas preté attention
    3- J’ai effectivement “7Beval(base64_decode($_SERVER%5BHTTP_REFERER%5D” dans les permaliens.

    Maintenant que le mal est fait, comment je peux le réparer? Faut-il suivre les étapes de l’upgrade en 2.8.4, ou il y a aussi autre chose à faire?
    Je me permet de préciser que je suis nulle en informatique… mais je sais suivre des instructions simples à la lettre.
    Merci infiniment pour toute aide.
    Une blogeuse désespérée

  4. Nicolas

    Ta base de données est corrompue et peut etre ton theme.
    Il faut que tu exportes tes billets et commentaires en xml via l’interface d’admin.
    Apres reinstalle completement wordpress en supprimant tous les fichiers et en ne gardant que le dossier wp-content. Des fichiers contaminés sont surement dans wp-uploads egalement.
    Une fois tout remis, verifie que ta base de données ne contienne pas le mot eval ou base64.
    Apres, il faut securiser ton installation et suivre dès que possible les mises à jour. 😉

  5. Mes favoris du 7-09-09 au 8-09-09

    […] Problème de sécurité sur les anciennes versions de WordPress ! | WordPress Fran…  Cet article a été publié dans Delicious avec les mots-clefs : favoris. Bookmarker le permalien. Laisser un commentaire ou faire un trackback : URL de trackback. « Mes favoris du 5-09-09 au 7-09-09 […]

  6. qwerty

    Merci beaucoup pour la réponse, mais comment dire… c’est un peu du chinois pour moi dès la deuxième phrase!
    Es-ce qu’il aurait quelque part un tutoriel pas à pas pour cette manip?
    Merci

  7. odenis

    Je reste très septique sur la requete “SELECT * FROM wp_posts WHERE post_content LIKE ‘%display:%'” car lorsque l’on utilise un générateur du style live writer. des display CSS apparaissent dans le contenu du post… donc forcement on a des retours sans pour autant être affecté.

  8. Blog Code Promo

    Bonjour,

    Pourquoi parlez-vous de ver??

    Pour ce que j’ai pu en voir, aucun ver n’habite la version wordpress corrompue. Il s’agit “simplement” d’un robot externe qui créé un compte et injecte des commentaires.

    Rien que du banal spam de formulaire, en somme, non?

    PS: perso, j’ai mis un htaccess sur tout /wp-admin/ depuis des mois, je ne regrette pas!

  9. qwerty

    Bonjour,
    Ce fut laborieux mais j’ai fini par réussir à nettoyer et mettre en place la version 2.8.4. A cette heure, le blog fonctionne ok.
    Je n’ai qu’une question: comment dois-je faire pour vérifier dans ma base de données l’absence des mots “eval” ou “base64”?
    J’imagine que c’est par la fonction “recherche” dans les tables concernées via l’interface phpMyadmin, mais plus en détails…? Juste la table wp-posts, ou d’autres? comment dois-je formuler la requête?

    Encore autre chose: Est-ce qu’il est tout à fait impossible que le dossier wp-content, qui est conservé, soit jamais contaminé? Merci

  10. Klein

    Alors pour ma part les CMS c’est vraiment un fonctionnement préhistorique j’arrive pas à m’y faire et naturellement je déteste, le système de faire un site en local puis de passer par un serveur puis passer par ftp puis trouver un hébergeur donc repasser tout son fichu bordel chez l’hebergeur pour configurer le tout sans oublier le phph plus que problématique je compte plus les mises à jour. WordPress veut jouer entre blog et site mais quand tu penses que tu peux créer un bon produit similaire sans tout ce système voyageur et voir le résultat très rapidement j’acquiesse sans sourciller bien entendu.

    Bon courage tout de même.

    Je crois que le système de créateur de site web acheté en commerce est bien plus efficace,

  11. philippe | photofloue

    Merci de ces indications, j’avais été attaqué et réparé les permaliens, mais là j’ai pu nettoyer la bdd de 2 administrateurs cachés (comptés comme tels dans la page “utilisateurs”, mais introuvables dans la liste), ainsi que les scripts dans post_content.

  12. patrick dupuy

    bonjour je ne suis pas sur d erte infecte mais je n arrive plus a avoir les commentaire apres parution d un article je les autorisent ca fonctionnait tres bien avant jusqua aout apres un stanby d 1 mois plus rien avez-vous une idee merci

  13. Miklos

    Le test MySQL renvoie des entrées très légitimes : lorsqu’on insère par exemple une carte Google (Google Maps), une timeline ou autre widget. Ce n’est pas probant du tout comme test.

Les commentaires sont fermés