sub_title
 MSSQL
제   목 SQL 인젝션 공격을 당했을 경우 인젝션 스크립트 지우는 저장 프로시저
작성자 아침마당 등록일 2010-09-14 15:20:05 조회수 26,077

SQL 인젝션 공격은 당하지 않는 것이 가장 좋다. 공격을 당하지 않는 방법은 프로그램 개발시 이를 고려하여 개발하는 방법이 있고, Webnight와 같은 무료 웹방화벽을 이용하는 방법이 있다.

그러나 이미 공격을 당한 경우 공격한 스크립트 내용을 지우는 저장 프로시저이다.

먼저 저장 프로시저를 생성을 하고 실행을 해 주면 된다.

프로시저 생성시 공격한 스크립트 내용을 @DEL_STR에 대입후 생성을 한다.

1. 프로시저 생성 

CREATE PROCEDURE  [MP_DELSTR]
AS

DECLARE @TP  int;
DECLARE @TBL varchar(255), @CLN varchar(255),  @DEL_STR varchar(255);
SET @DEL_STR='<script src=http://s.shunxing.com.cn/s.js></script>' 

DECLARE Table_Cursor CURSOR FOR
SELECT a.name, b.name ,b.xtype
FROM sysobjects a, syscolumns b
WHERE a.id = b.id AND a.xtype = 'u' AND
(b.xtype = 99 OR b.xtype = 35 OR b.xtype = 231 OR b.xtype = 167  OR b.xtype=175  OR b.xtype=239 );

OPEN Table_Cursor;

FETCH NEXT FROM Table_Cursor INTO @TBL, @CLN, @TP;
WHILE (@@FETCH_STATUS = 0) BEGIN
    IF  @TP  > 100
    BEGIN
          EXEC('UPDATE ['+ @TBL +'] set [' + @CLN + '] = REPLACE('+ @CLN+' , '''+@DEL_STR +''','''' )');
    END
    ELSE
    BEGIN
                    EXEC('UPDATE ['+ @TBL +'] set [' + @CLN + '] = REPLACE(CONVERT(varchar(8000),'+ @CLN+') , '''+@DEL_STR +''','''' )');
    END
FETCH NEXT FROM Table_Cursor INTO @TBL, @CLN,@TP;
END;

CLOSE Table_Cursor;
DEALLOCATE Table_Cursor;
GO

2. 프로시저를 실행한다.
EXEC MP_DELSTR

 
1
    
 
0
        list
 
※ 짧은 댓글일수록 예의를 갖추어 작성해 주시기 바랍니다.
line
reply cancel
 
번호 제목 글쓴이 추천 조회 날짜
34  인덱스를 위한 교재 추천 부탁 드립니다.   member 난모르겠 0 / 0 23405 2020-06-28
33  테이블 부하에 대해서...?   member 헨씀히포 0 / 0 23224 2019-05-24
32  MSSQL - 문자함수(len함수와 datalength 함수) 이미지   admin 웹마당넷 3 / 0 41081 2017-09-10
31  MSSQL - 백업 데이터를 다른 데이터베이스로 복원하기 이미지   admin 웹마당넷 6 / 2 29857 2015-07-05
30  MSSQL - SELECT 결과를 테이블로 만들기 이미지   admin 웹마당넷 1 / 0 27709 2015-06-26
29  기본 데이타 베이스 저장소 위치 바꾸기   member 아침마당 1 / 1 26434 2010-11-04
28  SQL Server 2008 복원시 트랜잭션 로그 백업   member 아침마당 1 / 0 26537 2010-09-25
27  SQL 인젝션 공격을 당했을 경우 인젝션 스크립트 지우는 저장 프로시저   member 아침마당 1 / 0 26077 2010-09-14
26  SQL Server 트랜잭션 로그 파일 줄이는 방법   member 아침마당 0 / 1 32450 2010-09-14
25  [MSSQL] SQL Server 2008 테이블 디자인 수정시 주의 사항   member 아침마당 1 / 0 28225 2010-08-22
24  [MSSQL] ISNULL 함수 간단 예제   member 아침마당 4 / 1 47998 2010-08-05
23  MSSQL - SELECT 와 동시에 INSERT 하기   admin 웹마당넷 14 / 3 153923 2009-02-03
22  MSSQL - IDENTITY 값 초기화 하기   admin 웹마당넷 3 / 2 63463 2009-01-27
21  MS-SQL 클러스터드 인덱스를 어떤 컬럼(들)에 생성하는 것이 유리할까?   member 마카로니 0 / 0 30014 2009-01-08
20  테이블 및 개체의 정보를 확인하기 위한 시스템 저장 프로시저(System Stored pr..   admin 웹마당넷 0 / 0 27632 2008-12-20
19  MSSQL 조인(JOIN)을 이용한 UPDATE 및 DELETE   admin 웹마당넷 5 / 0 53899 2008-11-29
18  SQL injection 웹에서 체크하기   member 수확물 0 / 0 26860 2008-10-10
17  MSSQL - CASE WHEN문   member 다자래 1 / 0 69969 2008-09-19
16  [MSSQL] 파티션 정보 검색   member 수확물 0 / 0 28703 2008-09-08
15  [MSSQL] DDL_Trigger_Example   member 수확물 0 / 0 34650 2008-09-08
14  [MSSQL] xml을 이용한 split   member 수확물 1 / 0 28823 2008-08-26
13  MSSQL - UNION ALL을 이용했을때 테이블명 가져오기 이미지   member 다자래 0 / 0 40225 2008-08-21
12  MSSQL - NULL 값을 다른 값으로 대체하기   member 다자래 8 / 4 101421 2008-08-21
11  [MSSQL] View안에 저장프로스져를 쓰는 방법   member 수확물 0 / 0 45393 2008-08-08
10  MSSQL - 숫자 세자리 마다 콤마(쉼표) 찍기   member 다자래 5 / 0 59247 2008-08-07
write
[2] button