index.html에 script 삽입되어 자동 삭제 하는 방법좀 알려주세요
작성자 정보
- 홍보성 작성
- 작성일
컨텐츠 정보
- 2,767 조회
- 0 추천
- 목록
본문
만약 <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 계정으로 실행 하시고.. 원본 폴더는 통째로 백업 해 두시기 바랍니다.
이만.
관련자료
-
이전
-
다음