Удаление вставленного содержимого в нескольких файлах на сервере Linux

Удаление вставленного содержимого в нескольких файлах на сервере Linux

У меня часто возникают проблемы с сайтами, которые взламываются. Обычно они заканчиваются вставленным скриптом в разных файлах. Есть ли способ на Linux найти этот контент и автоматически удалить его? Обычно этот контент начинается и заканчивается чем-то вроде этого.

<!--2d3965--><script type="text/javascript" language="javascript">
</script><!--/2d3965-->

Можно ли использовать какую-то комбинацию grep для поиска файлов, содержащих этот контент, а затем передать его в sed для удаления всего

из

решение1

Я написал такой скрипт, он может быть полезен.

#!/usr/bin/env python
import os
import sys


for infile in sys.argv[1:]:
    print infile
    filetmp=infile+'.tmp'
    BEGIN='<!--2d3965-->'
    END='<!--/2d3965-->'
    f = open(infile, 'r')
    ftmp = open(filetmp, 'w')
    skip=False


    for line in f:
        if BEGIN in line:
            #print line.partition(BEGIN)[0]
            ftmp.write(line.partition(BEGIN)[0])
            skip=True
        if END in line:
           #print line.partition(END)[2]
            ftmp.write(line.partition(END)[2])
            skip=False
        else:
            if not skip:
                ftmp.write(line)
    #you can add save restrictions here
    os.rename(filetmp, infile)

Вам следует предоставить:

  1. имя файла с вирусом
  2. строка, которая отмечаетвирус начинаетсянить
  3. строка, которая отмечаетконец вируса

    Не забудьте вернуть права доступа, если файл этого требует. Кстати, я думаю, это применимо только к текстовым файлам.

Пожалуйста, протестируйте и сделайте резервную копию перед использованием.

Используйте его следующим образом:

python cleaner.py index.html js/jquery.js

решение2

Я бы добавил эти файлы в subversion или git и автоматически сравнивал бы официальную версию этих файлов с файлами на сайтах на регулярной основе. Если вы видите разницу, вы знаете, что вас взломали, и можете искать утечку. Тем временем вы можете восстановить исходный файл из инструмента управления версиями.

Связанный контент