SQL Injection 취약점 사례 분석 #2
페이지 정보
작성자 서방님 댓글 0건 조회 130회 작성일 06-09-14 16:42본문
SQL Injection 취약점 사례 분석 #2
작성자 : 이종량
편집자 : 홍순성
계속 위협성을 가지고 있는 부분으로 꼭 체크 필요성이 있습니다.
혹시 웹 로그를 한줄한줄 다 읽는 분 있는가? 그것도 웹서버의 기본 로그가 아닌 전체 웹로그를 남겨서 읽는 사람이 있는가? 아마도 이걸 다 하는 사람이라면 두가지 사람중에 한 명일 것이다. 첫번째 경우는 할일 없는 사람이거나, 막 배우기 시작하는 관리자. 이 두가지 종류의 사람 이외에는 볼 일이 없을 것이다. 하지만 웹로그를 풀로 남겨서 쭉 보다보면 의외로 많은 정보가 생긴다. 정상적인 사이트로 보이지만 실제로 로그상에서는 클라이언트측 오류(4xx)나 서버측 오류(5xx)를 생각보다 많이 볼 것이다. 혹시 이런 4xx나 5xx 로그 중에서 이상한 로그는 있지 않을까 하고 생각한 적은 얼마나 있는가? 특히나 5xx로그는 심각한 문제를 일으킬 수 있다. 예를 들어. 다음과 같은 로그를 본적이 있는가?

위 로그는 그냥 보기가 힘들다. 그래서 특수 문자를 일반 문자로 바꾸면
와 같이 변한다.

글로 읽기만해도 복잡한 작업이다. 간단하게 순서를 정리하자면, SQL Injection 최약점 공격은
1. 웹서버의 구조 파악
2. 분석 대상 페이지 분류
3. SQL Injection 테스트
4. SQL 쿼리를 이용하여 시스템 장악 (스니퍼 및 캡춰를 위한 프로그램 설치)
5. 시스템 접근을 위한 백도어 설치 (사용자 추가 및 원격 관리 프로그램 설치)
와 같은 순서로 이루어진다. 이러한 공격은 별도의 개발된 간단한 스크립트를 통해 이루어지며, 이 모든 과정이 끝나는데 30분 정도 밖에는 소요되지 않는다. 이러한 부분이 현재는 중국을 기점으로 움직이고 있지만, 앞으로는 얼마나 더 많은 곳에서 발생될지 모른다. 자신의 사이트에 위의 문제점이 있는가를 테스트 해보고자 한다면 http://www.acunetix.com/wvs/ 에서 Acunetix Web Vulnerability Scanner 평가판을 받아 설치하여 검사를 한다.
Acunetix Web Vulnerability Scanner 사용 방법
SQL injection 탭을 열면 페이지가 나열되며, 해당 페이지는 모두 취약점이 있기에 공격의 대상이 될 수 있다는 내용이 나온다. 각 페이지의 내용을 세부적으로 보면 어떤 식으로 문제가 있어서 공격 대상으로 잡았는지가 나온다

취약점이 발견된 .asp 페이지. tname에 ‘가 들어가 있을 때 오류를 발생시켰다
여기 페이지 화면 하단에 있는 Edit with HTTP editor 버튼을 사용하면 이 페이지에 대한 유형을 조금 더 다양하게 사용자가 입력해 볼 수 있도록 되어 있다. 이러한 취약점은 MS의 문제가 아닌 웹 사이트 개발상의 문제이므로 별도의 패치나 업데이트, 백신을 통해 처리할 수 없다. 따라서 문제 해결이 다른 부분보다 어려우며, 경우에 따라서는 해결이 불가능한 경우가 발생될 수도 있다. 이러한 부분의 해결점은 소스를 수정할 것인가? 아니면 막을 것인가? 라는 두 가지 방법 중에 하나를 택하게 되며, 소스의 수정이 가장 좋은 방법이나 이것이 여의치 않을 때에는 막는 방법을 취할 수 밖에 없어진다.
작성자 : 이종량
편집자 : 홍순성
계속 위협성을 가지고 있는 부분으로 꼭 체크 필요성이 있습니다.
혹시 웹 로그를 한줄한줄 다 읽는 분 있는가? 그것도 웹서버의 기본 로그가 아닌 전체 웹로그를 남겨서 읽는 사람이 있는가? 아마도 이걸 다 하는 사람이라면 두가지 사람중에 한 명일 것이다. 첫번째 경우는 할일 없는 사람이거나, 막 배우기 시작하는 관리자. 이 두가지 종류의 사람 이외에는 볼 일이 없을 것이다. 하지만 웹로그를 풀로 남겨서 쭉 보다보면 의외로 많은 정보가 생긴다. 정상적인 사이트로 보이지만 실제로 로그상에서는 클라이언트측 오류(4xx)나 서버측 오류(5xx)를 생각보다 많이 볼 것이다. 혹시 이런 4xx나 5xx 로그 중에서 이상한 로그는 있지 않을까 하고 생각한 적은 얼마나 있는가? 특히나 5xx로그는 심각한 문제를 일으킬 수 있다. 예를 들어. 다음과 같은 로그를 본적이 있는가?

위 로그는 그냥 보기가 힘들다. 그래서 특수 문자를 일반 문자로 바꾸면

와 같이 변한다.

글로 읽기만해도 복잡한 작업이다. 간단하게 순서를 정리하자면, SQL Injection 최약점 공격은
1. 웹서버의 구조 파악
2. 분석 대상 페이지 분류
3. SQL Injection 테스트
4. SQL 쿼리를 이용하여 시스템 장악 (스니퍼 및 캡춰를 위한 프로그램 설치)
5. 시스템 접근을 위한 백도어 설치 (사용자 추가 및 원격 관리 프로그램 설치)
와 같은 순서로 이루어진다. 이러한 공격은 별도의 개발된 간단한 스크립트를 통해 이루어지며, 이 모든 과정이 끝나는데 30분 정도 밖에는 소요되지 않는다. 이러한 부분이 현재는 중국을 기점으로 움직이고 있지만, 앞으로는 얼마나 더 많은 곳에서 발생될지 모른다. 자신의 사이트에 위의 문제점이 있는가를 테스트 해보고자 한다면 http://www.acunetix.com/wvs/ 에서 Acunetix Web Vulnerability Scanner 평가판을 받아 설치하여 검사를 한다.
Acunetix Web Vulnerability Scanner 사용 방법
- File-New Scan을 선택한다
- 새 창에서 Scan single website를 선택하고 URL 주소를 입력한다
- Technologies를 열고 웹사이트에서 사용하고 있는 웹서비스 기능을 추가한다
- 프로파일로 default를 선택하면 모든 검사를 진행하나 검사를 빠르게 하고 싶다면 Scanning profile에 SQL injection을 선택한다.
- 이제 Next버튼만 몇번 누르면 화면 하단에 위치한 Active Windows 창에 진행 상태가 나타난다
- 테스트가 끝나기를 기다리면 된다. 작은 사이트의 경우 보통 30분 정도가 소요되며 보통 1~2시간 정도가 소요된다.
SQL injection 탭을 열면 페이지가 나열되며, 해당 페이지는 모두 취약점이 있기에 공격의 대상이 될 수 있다는 내용이 나온다. 각 페이지의 내용을 세부적으로 보면 어떤 식으로 문제가 있어서 공격 대상으로 잡았는지가 나온다

취약점이 발견된 .asp 페이지. tname에 ‘가 들어가 있을 때 오류를 발생시켰다
여기 페이지 화면 하단에 있는 Edit with HTTP editor 버튼을 사용하면 이 페이지에 대한 유형을 조금 더 다양하게 사용자가 입력해 볼 수 있도록 되어 있다. 이러한 취약점은 MS의 문제가 아닌 웹 사이트 개발상의 문제이므로 별도의 패치나 업데이트, 백신을 통해 처리할 수 없다. 따라서 문제 해결이 다른 부분보다 어려우며, 경우에 따라서는 해결이 불가능한 경우가 발생될 수도 있다. 이러한 부분의 해결점은 소스를 수정할 것인가? 아니면 막을 것인가? 라는 두 가지 방법 중에 하나를 택하게 되며, 소스의 수정이 가장 좋은 방법이나 이것이 여의치 않을 때에는 막는 방법을 취할 수 밖에 없어진다.
댓글목록
등록된 댓글이 없습니다.