У меня часто возникают проблемы с сайтами, которые взламываются. Обычно они заканчиваются вставленным скриптом в разных файлах. Есть ли способ на 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)
Вам следует предоставить:
- имя файла с вирусом
- строка, которая отмечаетвирус начинаетсянить
строка, которая отмечаетконец вируса
Не забудьте вернуть права доступа, если файл этого требует. Кстати, я думаю, это применимо только к текстовым файлам.
Пожалуйста, протестируйте и сделайте резервную копию перед использованием.
Используйте его следующим образом:
python cleaner.py index.html js/jquery.js
решение2
Я бы добавил эти файлы в subversion или git и автоматически сравнивал бы официальную версию этих файлов с файлами на сайтах на регулярной основе. Если вы видите разницу, вы знаете, что вас взломали, и можете искать утечку. Тем временем вы можете восстановить исходный файл из инструмента управления версиями.