Ich habe oft Probleme mit Websites, die gehackt werden. Normalerweise enden sie mit eingefügten Skripten in verschiedenen Dateien. Gibt es unter Linux eine Möglichkeit, nach diesem Inhalt zu suchen und ihn automatisch zu löschen? Normalerweise beginnt und endet dieser Inhalt mit etwas wie diesem.
<!--2d3965--><script type="text/javascript" language="javascript">
</script><!--/2d3965-->
Wäre es möglich, eine Art Kombination aus grep zu verwenden, um nach Dateien mit diesem Inhalt zu suchen und diese dann an sed weiterzuleiten, um alles von zu löschen
?
Antwort1
Ich habe ein solches Skript geschrieben, es könnte nützlich sein.
#!/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)
Sie sollten angeben:
- Dateiname mit Virus
- Zeichenfolge, die markiertViren beginnenSchnur
Zeichenfolge, die markiertVirusende
Vergessen Sie nicht, die Berechtigungen wieder zu ändern, wenn die Datei dies erfordert. Übrigens, ich glaube, dies gilt nur für Textdateien.
Bitte testen Sie es und erstellen Sie vor der Verwendung eine Sicherungskopie.
Verwenden Sie es folgendermaßen:
python cleaner.py index.html js/jquery.js
Antwort2
Ich würde diese Dateien in Subversion oder Git einfügen und die offizielle Version dieser Dateien regelmäßig automatisch mit den Dateien auf den Websites vergleichen. Wenn Sie einen Unterschied sehen, wissen Sie, dass Sie gehackt wurden und können nach dem Leck suchen. In der Zwischenzeit können Sie die Originaldatei aus dem Versionierungstool wiederherstellen.