2011-12-02 2 views
0

어제이 서버 하나가 SQL 인젝션 공격으로 서버가 해킹당했습니다. 외계인 스크립트가 들어있는 두 개의 테이블이 있습니다.SQL 인젝션을 제거하기위한 SQL 쿼리

내 옵션 : - 수천 개의 데이터베이스 항목에서 스크립트를 수동으로 삭제합니다. - 테이블 사본을 찾아 교체하십시오.

**"></title>\****<script**으로 시작하여 **</script><!--**으로 끝나는 스크립트를 찾아서 모든 데이터베이스 항목에서 제거하는 SQL 쿼리를 원합니다.

예 : "></title><script> </script><!--Aland Islands and remove "></title><script> </script><!-- 과 같은 데이터 항목이 쿼리에 표시되면 Aland Islands으로 남습니다.

P. 내가 경우에 대비하여 제거하고 싶은 전체 스크립트를 게시합니다. 죄송합니다 stackoverflow 어떤 이유로이 정보를 게시 할 수 없습니다.

+0

나는 주사가 DB 자체만큼 멀리 도달 할 수 있도록하는 것이 올바른 방법이 아니라고 생각합니다. 응용 프로그램 자체 (사이트)에서 주입/악의적 인 스크립트를 중지해야합니다. – Dementic

+0

그래, 나는 지금 어디에서 왔는지 모른다. 이상하게도 영향을받는 두 테이블은 웹 사이트를 업데이트하는 스크립트가 없습니다. – DopeyDatabaseMaster

답변

0

예 :

DELETE FROM infected_table 
FROM 
    infected_table i 
WHERE 
    i.script_column LIKE '>%' 

그래도 그것을 실행하기 전에 SELECT를 사용하여 LIKE 절을 시도하거나 결과가 커밋하기 전에 올바른지 확인 트랜잭션에서 실행 마십시오.

1

하나의 옵션은 테이블을로드 스크립트로 내 보낸 다음 텍스트 편집기 또는 sed을 사용하여 악의적 인 텍스트를 제거한 다음 테이블을 자르고로드 스크립트를 사용하여 다시로드하는 것입니다.

+0

감사합니다. 나는 실제로 테이블 사본을 가지고있다. 그냥 쉬운 길을 가고 싶었어요. – DopeyDatabaseMaster

0

첫 번째는 사이트의 모든 취약한 링크를 찾은 다음 공격자가 사이트를 찾는 데 도움이되는 오류는 오류로 인해 취약하기 때문에 사용중인 mysql 버전을 변경하십시오. PHP에서 웹 응용 프로그램에 공격자가 취약한 사이트를 찾도록 도와주는 몇 가지 다른 오류가있는 경우. acunetix 웹 취약점 스캐너를 사용하여 웹 응용 프로그램의 모든 유서를 찾을 수 있습니다.