질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

index.html에 script 삽입되어 자동 삭제 하는 방법좀 알려주세요

작성자 정보

  • 홍보성 작성
  • 작성일

컨텐츠 정보

본문

만약 <script language=javascript>document.write(unescape( 여기까지가 다른 정상적인 스크립트와 중복되지 않는다면 다음과 같이 재구성 할 수 있겠죠.

mv index.html index.old
grep -v "<script language=javascript>document.write(unescape(" index.old > index.html
chmod 로 권한 수정.

뭐 이정도 절차로 간단하게 해결되겠죠.

이걸 간단하게 스크립트로 제작한다면..

vi rebuild.sh

---------------

#!/bin/csh

while ( 1 )

    set findhackfile=grep "<script language=javascript>document.write(unescape(" *.html -r |xargs |awk '{print $1}'

    if ($findhackfile == "") then

        echo "find and fix Complet~!"

        exit

    endif

    mv $findhackfile $findhackfile.old

    grep -v "<script language=javascript>document.write(unescape(" $findhackfile.old > $findhackfile

end

-----------------

위 파일을 간단히 설명하자면..

현재 폴더에서부터 하위폴더까지 리커시브하게 해당 스크립트 내용이 있는 파일을 검색해서 파일 한개씩 감염된 파일을 old 파일로 바꾼다음에 old 파일의 해당 스크립트를 제거한 내용으로 다시 원본 이름으로 재 생성 해주고 감염된 모든 파일들이 수정 끝나면 완료 메세지를 표시하고 종료한다.. 뭐 이런 내용인데요..

프로그램의 간단한 버그로 예상되는 내용이 있다면 5000개가 전부 감염됬다면 xargs의 한도를 넘을수도 있기 때문에 아규먼트 오버가 발생할 수 있습니다.

이경우 스크립트 내용중에 grep ~~ -r |xargs 이 내용의 -r 옵션을 제거 하시고 폴더마다 직접 가서 이 스크립트를 돌리셔야 할겁니다.

한폴더도 감염된 파일이 많아서 아규먼트 오버가 발생한다면.. 음... 어떻할까..

php 스크립트로 다시 만들어볼까나.. 흠..

쉘스크립트도 한계가 있어서 c 쉘스크립트로 만들어 본건데..

폴더를 하나 만드시고 한꺼번에 처리할수 있는 만큼 옮기신 다음에 하셔도 무방할 듯 싶네요. *.html이라고 지정해놨는데 특정 파일만 감염됬다면 특정 파일명으로 지정하시면 좀더 빠른 결과를 얻을 수 있을 겁니다.

잘 모르시겠다면 그냥 *.*로 바꾸세요. ^^

추가 버그로는.. 퍼미션이 전부 바뀌겠죠? ^^;;

퍼미션은 웹이고, 동일한 모드라고 생각하고 무시했지만.. 혹시 모르시겠다면 퍼미션 정보까지 얻어서 변경까지 해주는 내용을 추가하시면 되겠네요. ^^

방법은 있는데 기억이 안나서리..

아. 이 스크립트 돌리시기 전에 반드시 폴더에 읽기쓰기삭제 권한이 있는 계정.. 이왕이면 root 계정으로 실행 하시고.. 원본 폴더는 통째로 백업 해 두시기 바랍니다.

이만.

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,138 명
  • 현재 강좌수 :  36,196 개
  • 현재 접속자 :  800 명