고객센터 : 031-548-0481 /호스팅문의:1644-2646 /서버호스팅문의 : 070-7573-5515/ 평일근무 : 09:00~18:00 / 토/일요일, 공휴일 휴무

1:1 고객상담문의 FAQ 자동답변

나노코팅 나노엔

구매안내

  • 아티보드 2.0
  • 아티보드 3.0
  • 아티카페
  • 파일공유사이트
솔루션 > 커뮤니티 > 사용팁

사용팁|

SQL Injection 의 대응법 2탄 [프로그램 EXE]|아티보드2.0

  • 최백호
  • |조회수 : 4165
  • |추천수 : 0
  • |2008-11-27 오후 5:31:03




















본 프로그램은 SQL Injection에 피해받은 데이터베이스  복구모듈을 제공한다.

--사용법--

1. 현재데이터베이스를 손실에 대비하여 백업한다.

2. 연결문자열을 완성한후 연결버튼을 누른다.

3. 연결이 되면 테이블목록이 표시되고 선택한 테이블에 대한 필드가 리스트에 표시된다,

3. 해킹된 문자열을 입력한다.

4. 전체를 체크하면 전체테이블을 체크를 해제하면 현재선택한 테이블만 변경한다.한다.

5. 변환 실패테이블에 등록된 테이블은 별도 쿼리분석기등을 사용하여 개별 실행한다.


[참고]

백업한 데이터베이스가 있다면 본 프로그램을 사용하지 않아도 된다.
SQL Injection을 검색하면 다양한 복구방법을 찾을 수 있다.
첨부된 VB6KO.DLL을 c:\window\system32에 카피하면 VB가 없어도 실행할 수 있다.


본프로그램은 아래와 같은 이유로 100%변환을 보장하지 못한다.

본프로그램시작버튼로직은
필드명=replace(cast(필드명 as varchar(8000)),'<** src=http://webarty.com/s.js>','')
을 수행한다.(주의) 필드자료가 8000이 넘는경우 잘릴 수 있다.


실데이터   : 홍길동입니다.
해킹데이터 : 홍길동<** src=http://webarty.com/s.js>.
변환데이터 : 홍길동.

따라서 데이터손실은 감수해야 한다.
운이 좋아 아래와 같이 뒤에 해킹문자열이 붙는 경우는 변환은 성공일 것이다.

실데이터   : 홍길동입니다.
해킹데이터 : 홍길동입니다.<** src=http://webarty.com/s.js>
변환데이터 : 홍길동입니다.

SQL Injection은 예방이 최선이다.

[예방]
1. 최대한 stored procedure로 쿼리를 작성한다.
2. 소스내에 쿼리를 사용하면 넘겨온 파라메터를 모두 검증해야 한다.
3. 쿠키나 세션변수또한 검증해야 한다.


asp code
Function ConvertString(str as string)
 if str <> "" then
  str = replace(str,"'","")
  str = replace(str,";","")
  str = replace(str,"--","")
  str = replace(str,"#","")
  str = replace(str,"\\","")
  str = replace(str,"&","")
  str = replace(str,"<","")
  str = replace(str,">","")
  str = replace(str,"(","")
  str = replace(str,")","")
  str = replace(str,"=","")
 end if
 ConvertString = str
End Function

c# code
protected string ConvertString(string str)
{
        if (str == null) return null;

        str.Replace("'", "");
        str.Replace(";", "");
        str.Replace("--", "");
        str.Replace("#", "");
        str.Replace("\\", "");
        str.Replace("&", "");
        str.Replace("<", "");
        str.Replace(">", "");
        str.Replace("(", "");
        str.Replace(")", "");
        str.Replace("=", "");

        return str;
}   

댓글 4

프로그램 올리셨네요 저도 이 프로그램을 전에 사용해봤는데 text 문자열이 잘리는 일때문에 ㅠ.ㅠ 큰 낭패를 겪어본적이 있죠 위에 본문에도 올라왔듯이 Replace 8000 이상의 문자일

에버클럽님 오늘도 즐겁고 행복한 하루요.

연결문자열을 환성한후에 연결버튼를 눌러도<

음 5번정도 테스트 해본결과 .. 아마도 . 연결문자열 부분에 정보가 정상적으로 입력이 안되서 나타난 현상인듯 합니다.
Provider=SQLOLEDB;Data Source=ip 주소;Initial Catalog=데이터베이스명;user ID=사용자IDq;password=비밀번호;
빨간색으로 표시된 부분을 수정 하셔야 합니다.
그럼 오늘도 즐겁고 행복한 하루되세요. ^^
사용자IDq 쪽에  q 요걸 왜 넣었는지 .. ㅎㅎ 오타가 일어난듯

번호 제목 닉네임 조회수 작성일
135 공개웹방화벽을 이용한 홈페이지 보안 [6] file 최백호 5639 2008.05.19
134 회원 로그인 설치하기 (초보자용) [8] 에버클럽 5116 2006.06.09
133 SQL Express 버전에서의 OLEDB 연결 [3] 이재원 5083 2009.11.16
132 아티보드 처음 설치하시는 분들께 저의 설치기를 알려드립니다. [1] 김태원 4961 2005.12.28
131 게시판id를 인식하여 게시판마다 다른 태그를 넣는 방법 [7] 김정만 4873 2009.03.03
130 아티보드 최신글 뽑기 강좌? 입니다. [3] file 웹아티 4862 2005.12.22
129 아티보드 최근 게시글 뽑기 소스 입니다. [4] file 웹아티 4715 2006.05.26
128 로그인 후 이전 페이지로 이동하는 팁입니다. [2] file 웹아티 4698 2008.12.10
127 아티보드 최신글 뽑기 추가 입니다.^^ [2] 웹아티 4435 2005.12.23
126 로그인 iframe 넣는 방법 [3] 김통령 4242 2006.01.03
125 ABC 업로드 컴포넌트 4.1 ^^ [3] file 김통령 4186 2007.01.31
SQL Injection 의 대응법 2탄 [프로그램 EXE] [4] file 최백호 4165 2008.11.27
123 윈도우 2003 IIS 셋팅 및 권한부여 방법 [1] 웹아티 4051 2006.04.06
122 메인에 글뽑기;;; 함수로 만들어봤는데;;; [3] file 조성범 4039 2007.12.12
121 TABS Upload 4.3 x86 - 4.0 x86 버전 입니다. .. file photo 최백호 3955 2011.12.20
120 DB설치오류와 대처(동영상)-"sql이 없거나 액세스 할 수 없습니다" [4] file 김경혜 3953 2009.01.28
119 웹아티 1.8제대로 수정하기(2008_0811 수정본) [1] 김정만 3928 2008.05.10
118 [강좌]ASP 기초강좌 입니다. 초보님들 공부하세요^^ [6] 박인영 3844 2007.12.11
117 웹아티 메인에서 사용되는 공지사항 소스입니다. [1] file 웹아티 3821 2006.04.11
116 서버 2008에서 메일보내기입니다. [2] 배영직 3777 2010.08.09