0

一些愚蠢的猴子浪费了他们和我的时间来感染我们的一个网站。现在,该网站似乎已通过 ftp 入侵,并且一大堆文件已被感染。更改了 ftp 凭据后,我现在的想法是运行 find 和 sed 以摆脱代码:

find . -type f -exec sed -i 's/term-to-search-for//g' {} \;

现在我需要一些关于正则表达式的帮助。脚本以一些 JS 代码开头,<script>然后总是有一个名为的变量egbserb(在其他地方从未使用过),还有结束标记 ( </script>)。两个问题:

  1. 这就是我尝试过的:(script*egbserb*script保持简单),但没有成功。
  2. 如果代码写在更多行上,那么我将如何编写正则表达式?

提前非常感谢!

4

2 回答 2

0

以下应该对您有所帮助。(假设:我正在处理 test_regex 文件)

sed -r -i "s/.*ebgserb.*//g" test_regex
sed -r -i "s/.*split\(\"\&\&\"\).*//g" test_regex
于 2012-10-16T21:44:12.597 回答
0

我遇到了类似的问题,我成功地使用了它。你可以使用这个 Perl 脚本:

#!/usr/bin/perl

use strict;
use warnings;
my @arr;
my $start;
my $flag=1;
open (MYFILE, 'temp');

while (<MYFILE>) {
if($flag!=0)
{
push(@arr,$_);
}
                if(/<\/script>/)
                {
                $flag=1;
                }
                if(/<script>/)
                {
                $start=scalar(@arr);
                }
          if(/ebgserb/)
          {
          delete @arr[$start-1..(scalar(@arr)-1)];
          $flag=0;
          }
}
print "@arr";
close(MYFILE);
于 2012-10-17T07:02:39.897 回答