我经常遇到网站被黑客入侵的问题。通常,这些网站会在不同的文件中插入脚本。在 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 中,并定期自动将这些文件的官方版本与网站上的文件进行比较。如果您发现差异,您就知道您已被黑客入侵,并且可以搜索泄漏。同时,您可以从版本控制工具中恢复原始文件。