Comment réparer mon site WordPress hacké ?
Vous avez été piraté ? Votre site WordPress n’est plus accessible ? Le panneau d’administration non plus ?
Voici un guide de débogage pour rendre de nouveau accessible votre site Internet WordPress piraté. N’hésitez pas à me contacter pour dépanner votre WordPress.
SOS débogage : remettre sur pied son site WordPress
Si vous n’avez plus du tout d’accès à votre panneau d’administration WordPress /wp-admin/ il va falloir mettre les mains dans le cambouis car il est impossible d’installer un plugin qui va faire le travail à votre place. Pour ne rien vous cacher, c’est un peu technique.
1) Se connecter au serveur FTP
La première chose à faire va être de se connecter à votre serveur FTP (Je conseille le logiciel gratuit FileZilla). Une fois connecté à votre serveur, vous devriez avoir la liste des fichiers et dossiers WordPress :
2) Faire une sauvegarde WordPress
Rapatrier l’ensemble des fichiers sur votre ordinateur. Cela pourra toujours vous servir ultérieurement si vous devez retrouver un fichier. Certains hébergeurs proposent des sauvegardes automatiques journalières, dans ce cas là, assurez-vous qu'elles fonctionnent et télécharger la dernière sauvegarde.
En plus des fichiers, il est conseillé de récupérer votre base de données MySql.
3) Vérifier le .htaccess
Souvent, le fichier .htaccess a été corrompu. Vous pouvez supprimer le .htaccess OU le modifier et y remettre le fichier de base. Voici le contenu par défaut du fichier WordPress .htaccess :
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
A savoir qu’il devrait y avoir un seul fichier .htaccess sur votre site. Vérifier donc tous les dossiers et supprimer tous les .htaccess
Je conseille de mettre ensuite ce fichier .htaccess en lecture seule (CHMOD 444) afin de s’assurer qu’il ne soit plus modifié.
Si vous l’avez supprimé, seule votre page d’accueil de votre site sera accessible. Il faut dans ce cas là de nouveau générer le .htaccess en allant dans l’admin WordPress -> Admin -> Réglages -> Permaliens et valider le formulaire.
4) Fichier impossible à supprimer ou à lire
Votre site web peut être inaccessible car l’ensemble des fichiers et dossiers de votre site a perdu ses droits de lecture. (Un malware peut retirer les permissions sur les fichiers).
Si vous n’arrivez pas à supprimer des fichiers sur votre FTP, c’est que les permissions (droits d’accès) du fichier ont été modifiées. Soit par votre hébergeur pour la sécurité du site, soit par le virus lui même. Il faut donc redonner les droits d’accès (CHMOD) aux dossiers et fichiers.
Sur Filezilla, bouton droit sur un fichier ou un dossier > Droits d’accès aux fichiers
Pour les fichiers, CHMOD 604
Pour les dossiers, CHMOD 705
5) Activer l’affichage des erreurs (fichier wp-config.php)
Votre site WordPress ne s’affiche plus et affiche une page blanche ? Pour comprendre pourquoi votre site bug, il faut activer l’affichage des erreurs PHP.
Pour afficher les erreurs, ouvrir le fichier wp-config.php
Ensuite, on change la valeur des paramètres suivants :
define('WP_CACHE', false); // désactive le cache
define('WP_DEBUG', true); //
ini_set("display_errors", 1); // affiche les erreurs PHP
error_reporting(E_ALL); // On veut tous les types d'erreurs PHP
Votre site devrait à présent afficher les erreurs (Fatal Error, erreur serveur, etc).
Il suffira de remettre les valeurs par défaut une fois que les erreurs auront été corrigées :
define('WP_CACHE', true);
define('WP_DEBUG', false);
#error_reporting(E_ALL);
#ini_set("display_errors", 1);
6) Trouver et corriger les erreurs
Les erreurs de type Warning ou Notice ne font pas planter WordPress. Elles peuvent néanmoins vous indiquer des problèmes qui empêchent un plugin de fonctionner.
C’est souvent une Fatal error qui fait planter le site.
Il est indiqué le nom du fichier et la fonction qui fait planter.
Si c’est un fichier dans un plugin /wp-content/plugins/
Désactiver le plugin via le FTP en renommant le nom du dossier du plugin en question. Ajouter un OLD au nom du dossier. Cela le désactivera.
Si c’est un fichier dans un thème /wp-content/themes/
Désactiver le thème via le FTP en renommant le thème. WordPress basculera automatiquement sur le thème par défaut. Attention, il faut absolument que votre dossier /themes/ contienne un theme par defaut. (twentytwenty)
Si vous vous y connaissez en PHP, vous pouvez corriger l’erreur directement.
7) Remettre les fichiers d’origine de WordPress
Il est possible que les fichiers de base de WordPress aient été compromis par le Malware (du code malveillant s’est immiscé dedans).
Toujours via FTP, je vous invite à upload de nouveau tous les fichiers WordPress. Pour cela, télécharger WordPress sur le site officiel, extraire l’archive et remplacer tous les fichiers sur le FTP.
Si vous avez accès de nouveau à l’admin WordPress, vous pouvez faire cette manip directement depuis le panel d’administration.