У меня часто возникают проблемы с сайтами, которые взламывают. Обычно они заканчиваются вставкой скрипта в разные файлы. Есть ли в Linux способ найти этот контент и автоматически удалить его? Обычно этот контент начинается и заканчивается примерно так.
<!--2d3965--><script type="text/javascript" language="javascript">
</script><!--/2d3965-->
Можно ли использовать какую-то комбинацию grep для поиска файлов, содержащих этот контент, а затем передать его в sed, чтобы удалить все из
к
Я написал такой скрипт, может пригодиться.
#!/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
Я бы добавил эти файлы в subversion или git и автоматически сравнивал официальную версию этих файлов с файлами на сайтах на регулярной основе. Если вы видите разницу, значит, вы были взломаны, и можете искать утечку. Тем временем вы можете восстановить исходный файл с помощью средства управления версиями.