2012-10-16 2 views
0

일부 바보 같은 원숭이가 우리 웹 사이트 중 하나를 감염시키고 낭비했습니다. 이제는 웹 사이트가 ftp를 통해 감염되었으며 모든 파일이 감염된 것 같습니다. find와 sed로 멀웨어 코드를 제거하려고 시도했습니다.

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

지금 내가 정규식 도움이 필요 :은 ftp 자격 증명을 변경하는 데, 내 생각은 이제 찾아 코드를 제거하는 sed를 실행하는 것이 었습니다. 스크립트는 <script>으로 시작하고 일부 JS 코드가 있습니다. egbserb (다른 곳에서는 사용되지 않음)이라는 변수가 있으며 닫는 태그 ( </script>)가 있습니다. 두 질문 :

  1. 이것은 내가 뭘하려는 : script*egbserb*script (그 바보 같은 간단한 유지), 그러나 그것은 작동하지 않았다.
  2. 코드가 더 많은 행을 통해 작성된 경우 어떻게하면 정규식을 작성해야합니까?

미리 감사드립니다.

+1

제거 할 샘플 줄을 제공 할 수 있습니까? –

+0

버전 관리 시스템으로 돌아가서 사이트를 다시 만들 수 없습니까? –

+0

예, 웹 사이트를 롤백하십시오. –

답변

0

다음은 도움이됩니다. (가정 : 나는 test_regex 파일에서 일하고있다)

sed -r -i "s/.*ebgserb.*//g" test_regex 
sed -r -i "s/.*split\(\"\&\&\"\).*//g" test_regex 
0

나는 이것을 성공적으로 사용했다. U이 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); 
관련 문제