Messages: 127

Enregistré le: 9 Mai 2006

Message le Sam Sep 26, 2015 17:39

Bonjour,

Je viens de m'apercevoir que quand je suis en version texte seul sur mon site (google cache), je vois plus d'une centaine de liens indésirables sur ma page d'accueil. C'est étrange car quand je suis en version intégrale, les liens n'apparaissent pas sur le site.

Ce qui est étonnant, c'est que dans mon WebmasterTools, il n'y a pas de message affichant un problème de sécurité.

Que faire pour supprimer ces liens ?
Haut
40 Réponses
Messages: 13572

Enregistré le: 5 Déc 2004

Message le Sam Sep 26, 2015 18:32

webilyas a écrit:quand je suis en version texte seul sur mon site (google cache), je vois plus d'une centaine de liens indésirables sur ma page d'accueil. C'est étrange car quand je suis en version intégrale, les liens n'apparaissent pas sur le site.

Cloaking ton site est "piraté". Change tout tes mots de passe et recharge une version propre du site.
Haut
Messages: 37930

Enregistré le: 7 Juil 2004

Message le Sam Sep 26, 2015 19:33

Bonjour,

Vérifier aussi d'où vient le problème (vérifier les fichiers du site).

Cordialement.
Haut
Messages: 127

Enregistré le: 9 Mai 2006

Message le Sam Sep 26, 2015 20:00

@zeb

J'avais déjà supprimé des fichiers suspects dans mon serveur et j'avais aussi modifié mes mots de passe.

Peut être que le cache de mon site n'est pas à jour sur google ? Comment vérifier la date ?
Modifié en dernier par Marie-Aude le Sam Sep 26, 2015 23:55, modifié 1 fois.
Raison: Suppression de la citation inutile du message en entier
Haut
Messages: 127

Enregistré le: 9 Mai 2006

Message le Sam Sep 26, 2015 20:03

@Madrileño
Oui mais comment et quels fichiers ? Il y a une centaine de fichier!
Modifié en dernier par Marie-Aude le Sam Sep 26, 2015 23:55, modifié 1 fois.
Raison: Suppression de la citation inutile du message en entier
Haut
Messages: 13572

Enregistré le: 5 Déc 2004

Message le Sam Sep 26, 2015 22:25

webilyas a écrit:Comment vérifier la date ?

Dans le style tu en pose souvent des questions de base monsieur le SEO de Belgique qui a pignon sur rue ... 8O
Ceci est le cache Google de http://******. Il s'agit d'un instantané de la page telle qu'elle était affichée le 20 sept. 2015 10:25:44 GMT.

Bref si tu as été infecté ET que le cache est daté d'après tes correction c'est que tu est toujours infecté.
Soit dit en passant et pour prévenir la potentielle question suivante si tu est encore infecté ET que tu avais fait le ménage il faut maintenant trouver la faille pour la combler et refaire le ménage en même temps.
Haut
Messages: 18372

Enregistré le: 5 Juin 2006

Message le Sam Sep 26, 2015 23:54

webilyas a écrit:Oui mais comment et quels fichiers ? Il y a une centaine de fichier!


Waow c'est énorme ! :lol:
Haut
Messages: 3259

Enregistré le: 7 Sep 2003

Message le Dim Sep 27, 2015 1:25

webilyas a écrit:Oui mais comment et quels fichiers ? Il y a une centaine de fichier!


Déjà c'est pas un wordpress
Haut
Messages: 127

Enregistré le: 9 Mai 2006

Message le Dim Sep 27, 2015 1:27

zeb a écrit:Ceci est le cache Google de http://******. Il s'agit d'un instantané de la page telle qu'elle était affichée le 20 sept. 2015 10:25:44 GMT.


Le site est toujours infecté :?

Comment trouver la faille pour enlever tous ces liens indésirables ?
Haut
Messages: 127

Enregistré le: 9 Mai 2006

Message le Dim Sep 27, 2015 1:34

Marie-Aude a écrit:
Waow c'est énorme ! :lol:


Je cherche une solution à mon problème ici, je n'ai pas besoin de commentaires inutiles comme le vôtre :!: Ça devient agaçant savez-vous :?:

De plus, ce qui est gênant, vous n'agissez pas comme un modérateur. Merci de vous abstenir si vous n'avez rien à dire d'intéressant :wink:
Haut
Messages: 3259

Enregistré le: 7 Sep 2003

Message le Dim Sep 27, 2015 1:35

J'ai eu le même cas avec le site de mon dernier client, il était sous Joomla
Haut
Messages: 127

Enregistré le: 9 Mai 2006

Message le Dim Sep 27, 2015 1:37

indigene a écrit:
Déjà c'est pas un wordpress


Ça peut l'être... ou sinon, c'est quoi la source du problème alors ? quel fichier est infecté d'après vous ?
Haut
Messages: 8554

Enregistré le: 14 Mai 2003

Message le Dim Sep 27, 2015 1:45

C'est un WP.
Ça peut être n'importe lequel, il faut rechercher dans les fichiers avec grep ou N++ ou demander à ton développeur.
Haut
Messages: 3259

Enregistré le: 7 Sep 2003

Message le Dim Sep 27, 2015 1:46

webilyas a écrit:Ça peut l'être...


Wordpress c'est des milliers de fichiers
Haut
Messages: 3259

Enregistré le: 7 Sep 2003

Message le Dim Sep 27, 2015 1:49

webilyas a écrit:quel fichier est infecté d'après vous ?


Possible qu'aucun fichier ne soit infecté, mais que ce soit la base de données
Haut
Messages: 18372

Enregistré le: 5 Juin 2006

Message le Dim Sep 27, 2015 7:24

webilyas a écrit:Je cherche une solution à mon problème ici, je n'ai pas besoin de commentaires inutiles comme le vôtre :!: Ça devient agaçant savez-vous :?:

De plus, ce qui est gênant, vous n'agissez pas comme un modérateur. Merci de vous abstenir si vous n'avez rien à dire d'intéressant :wink:


Merci de vous abstenir de me donner des ordres. A moins qu'on recommence la discussion qu'on a eu l'autre fois et que j'avais totalement oubliée (et que votre commentaire m'a rappelée)

Mon boulot de modérateur consiste à supprimer ce qui est hors charte et corriger les posts des gens qui, comme vous, ne sont pas capable de faire la différence entre "citer" et "répondre" et donnent l'impression d'un bégaiement à tout lecteur du fil.

Pour le reste, je suis, comme n'importe quel membre du forum, autorisée à exprimer des opinions, tant qu'elles restent courtoises.

Sur ce, si vous voulez des réponses efficaces, dites de quel site il s'agit, s'il est fait avec un CMS, lequel, plugins, extensions, etc c'est là qu'on pourra vous guider.

Perso, je ne réponds pas en utilisant la boule de cristal.
Haut
Messages: 13572

Enregistré le: 5 Déc 2004

Message le Dim Sep 27, 2015 11:02

webilyas a écrit:Comment trouver la faille pour enlever tous ces liens indésirables ?

il y a 1000 et une façon simple c'est un métier mon brave monsieur.

Bon passons sur ce qui pourrait être considéré comme du sarcasme ou avec un peut d'esprit des pics destinés a faire progresser.

1/ la technique Spout (long et chiant)

2/ md5 > tu calcul un hash de tous les fichiers via une récursive sur le site et en local (site non infecté) ensuite tu compare.
Perso j'ai ça en natif sur mon CMS donc j'ai une base des hash normaux et un script qui calcule en live si différence j'ai une alerte et je regarde si c'est normal (certains fichiers changent c'est normal donc faut trier dans les différences ensuite).

Faut bien sur prévoir le coup a l'avance c'est mieux.

3/ linux (ou ton serveur en SSH si tu bosse sur du microsoft car je ne sais pas si ça existe sous cet OS) : http://www.linux-france.org/article/man-fr/man1/diff-1.html . Il est évident qu'un fichier en plus ne sera pa vu donc il faut aussi comparer le nombre de fichiers présents.

4/ en local tu compare les tailles des fichiers mais c'est moins fiable.

Un peu de code pour se prémunir a l'avenir :

Code: Tout sélectionner
CREATE TABLE IF NOT EXISTS `miroir_fichier` (
  `id` bigint(20) NOT NULL auto_increment,
  `fichier` varchar(256),
  `version` varchar(10),
  `hash` varchar(32) NOT NUL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `solo` (`fichier`,`version`)
)


la fonction php qui va bien :

config.php > fichier qui contiens tes variables comme tes accès base de données
s_mysqli_query > équivalent de mysqli_query lié au CMS
${table_miroir_fichier} > le bom de la table qui contiens les sortie (ici ^^ `miroir_fichier`)

appel de la fonction > String parse_folder(string path , bool affichage direct, bool initialisation de la base , bool récursif dans les sous dossiers rencontrés);


Code: Tout sélectionner
    function parse_folder($dir,$display,$init,$subfolder){
        require($_SERVER['DOCUMENT_ROOT'].'/config.php');

        if ($dh = opendir($dir)) {
            while (($file = readdir($dh)) != false){
                if (is_dir($dir.$file) && (!preg_match("/^\./",$file))){
                    if($subfolder){$log .= parse_folder($dir.$file.'/',$display,$init,$subfolder);}
                }else{
                    $hash = hash_file('md5',($dir.$file));
                    if($hash!='d41d8cd98f00b204e9800998ecf8427e'){ // (Hash of an empty string)
                        $short_file = preg_replace('#^'.$_SERVER['DOCUMENT_ROOT'].'#si',"",$dir.$file);
                        $sql1 = "SELECT `hash` FROM `${table_miroir_fichier}` WHERE `fichier` = '$short_file' AND `version` = '$version'";
                        $sql2 = "INSERT INTO `${table_miroir_fichier}` (`id`, `fichier`, `version`, `hash`) VALUES ('', '$short_file', '$version', '".$hash."')";
                        $rs = s_mysqli_query($sql1);
                        $cr = mysqli_num_rows($rs);
                        if($cr == 1){
                            // un résultat en base on a déjà rencontré le fichier
                            $rec = mysqli_fetch_array($rs);
                            if($rec[0]==$hash){
                                if($display){echo "<tr><td>$short_file</td><td><font color='green'>Ok</font></td><td>$hash</td></tr>\n";}
                            }else{
                                if($display){echo "<tr><td>$short_file</td><td><font color='red'>Attention</font></td><td>$hash</td></tr>\n";}
                                $log .= "[$short_file] corruption possible md5 base : ".$rec[0]." / md5 filesystem : $hash<br/>\n";
                            }
                        }else{ // fichier jamais vu en base donc possible corruption
                            if($init){s_mysqli_query($sql2);}
                            if($display){echo "<tr><td>$short_file</td><td><font color='red'>Fichier inconnu</font></td><td>$hash</td></tr>\n";}
                            $log .= "[$short_file] ajout possible md5 base : inéxistant / md5 filesystem : $hash<br/>\n";                
                        
}
                    }
                }
            }        
        
}
        closedir($dh);
        return $log;
    


et un exemple de sortie écran :

Image

sur cet exemple tu remarque des fichiers connus à la racine (vert OK), une alerte sur le fichier htaccess (normal il a été modifié) et le fichier favicon.ico qui fait gueuler le système car il n'était pas présent au scan précédent.
Haut
Messages: 8554

Enregistré le: 14 Mai 2003

Message le Dim Sep 27, 2015 13:19

zeb a écrit:1/ la technique Spout (long et chiant)

Sauf quand on a déjà sa petite idée où ça se trouve et quoi chercher :D
Haut
Messages: 13572

Enregistré le: 5 Déc 2004

Message le Dim Sep 27, 2015 14:49

De toute façon le cloacking il y a en effet pas a tortiller du c*l pour chi*r droit il y a pas masse de scripts ou tu peux intervenir.
Haut
Messages: 127

Enregistré le: 9 Mai 2006

Message le Dim Sep 27, 2015 14:54

Je pense avoir trouvé la faille de sécurité, c'est ma base de donnée PhpMyAdmin en fait qui n'a pas été mise à jour depuis très longtemps. Je suis actuellement en version: 4.0.10.7, et la dernière version stable est : 4.5.0.2 :/ Je suis à 99 % sûr que c'est ça le problème.

J'ai contrôlé les fichiers de mon serveur, et je n'ai rien trouvé de suspect comme fichier.
Haut
Messages: 314

Enregistré le: 13 Nov 2002

Message le Dim Sep 27, 2015 15:18

Bonjour à tous,

Quelques outils ici :

http://wptavern.com/how-to-find-hacked-wordpress-files

Cordialement
Haut
Messages: 18372

Enregistré le: 5 Juin 2006

Message le Dim Sep 27, 2015 15:46

webilyas a écrit:Je pense avoir trouvé la faille de sécurité, c'est ma base de donnée PhpMyAdmin en fait qui n'a pas été mise à jour depuis très longtemps. Je suis actuellement en version: 4.0.10.7, et la dernière version stable est : 4.5.0.2 :/ Je suis à 99 % sûr que c'est ça le problème.


J'en doute très fortement, parce que normalement :

1- ton phpmyadmin est sécurisé par ton hébergeur, à moins que tu sois sur un dédié
2- accéder à ton phpmyadmin implique d'avoir sa localisation sur le serveur et les mots de passe, ce qui se fait par le site
3- de très nombreux phpmyadmin sont anciens, sans aucun problème de sécurité

ce qui ne veut pas dire, bien entendu, que le contenu de la base n'a pas été modifié... mais via ton cms, pas via phpmyadmin, sauf installation perso avec faille de sécurité flagrante :)
Haut
Messages: 1698

Enregistré le: 10 Aoû 2003

Message le Dim Sep 27, 2015 19:15

Quelle version PHP, MySQL ?
Quelle version de WP ?
Ton mot de passe était un peu chiadé ? Autre chose qu'un mot de passe du style 123456 !
Haut
Messages: 931

Enregistré le: 15 Nov 2007

Message le Dim Sep 27, 2015 20:31

Si c'est un wordpress (d'ailleurs tu ne le dis pas ???), une recherche d'une fonction ressemblant à eval(base64_decode... avec derrière toute une suite de chiffres et de lettres peut te donner une indication.

Cela infecte la base de données de manière récurrente.

Je pense avoir trouvé la faille de sécurité, c'est ma base de donnée PhpMyAdmin en fait qui n'a pas été mise à jour depuis très longtemps. Je suis actuellement en version: 4.0.10.7, et la dernière version stable est : 4.5.0.2 :/ Je suis à 99 % sûr que c'est ça le problème.


La version de PHPMYADMIN n'a strictement rien à voir dans ton problème. Evites de dire que tu penses à 99% que tu sais avant de faire une chose surtout quand t'es très loin...
Dans ce cas, c'est plutôt un problème de version de wordpress (si encore c'est un worpdress...)

C'est étrange car quand je suis en version intégrale, les liens n'apparaissent pas sur le site.

Souvent les hackers s'arrangent pour encapsuler les liens dans des DIV avec un style du genre "position:absolute;top:-1000px" ce qui sort la div de l'écran mais elle est bien présente pour le moteur de recherche.
Haut
Messages: 836

Enregistré le: 29 Déc 2007

Message le Dim Sep 27, 2015 21:19

probablement un thème ou plugin de wordpress pas à jour, voir wordpress pas à jour.
Faut Tout réinstall et vérifier manuellement chaque fichier que tu voudrais réutiliser, des backdoors peuvent se cacher sous plein de façons différentes voire quasiment anodines.
Haut
Messages: 12288

Enregistré le: 23 Nov 2005

Message le Dim Sep 27, 2015 22:04

Je n'irai pas jusque-là. Pour cleaner, la recherche de eval(base64_decode dans le code source suffit très souvent. Reste à identifier la faille (déjà en désactivant tous les plugins non maintenus, ou plus utilisés, ça permet de faire du ménage, idem pour tous les thèmes qui ne servent pas).
Haut
Messages: 836

Enregistré le: 29 Déc 2007

Message le Lun Sep 28, 2015 0:08

des backdoors n'ont pas besoin de eval ou base64 pour fonctionner.
je me suis déjà fait hacker et y'avait plein de backdoors, certains avec eval, mais d'autres non.
Il existe une tonne de façons d'éxécuter du code malveillant à distance autre que eval
Haut
Messages: 931

Enregistré le: 15 Nov 2007

Message le Lun Sep 28, 2015 9:11

madri2 a écrit:des backdoors n'ont pas besoin de eval ou base64 pour fonctionner.
je me suis déjà fait hacker et y'avait plein de backdoors, certains avec eval, mais d'autres non.
Il existe une tonne de façons d'éxécuter du code malveillant à distance autre que eval


C'est vrai, mais une première recherche sur eval, base64... peut s'avérer positive. A partir de ce moment, enlever ce code malveillant, mettre à jour Wordpress sur la dernière version pour éviter les failles, enlever les thèmes inutilisés, mettre à jour les plugins, changer ses codes d'accès et nettoyer sa base de données peut suffire à éradiquer le souci sans pour autant tout repartir de 0.
De toute façon, tu le vois très vite derrière, ta base de données étant de nouveau infectée très rapidement...
Haut
Messages: 18372

Enregistré le: 5 Juin 2006

Message le Lun Sep 28, 2015 10:51

Si c'est un wordpress il y a des outils très efficaces, y compris pour vérifier par rapport aux originaux, mais comme on ne sait pas ce que c'est...
Haut
Messages: 931

Enregistré le: 15 Nov 2007

Message le Lun Sep 28, 2015 16:13

Marie-Aude a écrit:Si c'est un wordpress il y a des outils très efficaces, y compris pour vérifier par rapport aux originaux, mais comme on ne sait pas ce que c'est...


C'est effectivement tout le problème depuis le début :)
Haut