강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

CrazyWWWboard 취약점을 이용한 포르노 사이트로의 악용

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

icon01.gifCrazyWWWboard 취약점을 이용한 포르노 사이트로의 악용

CrazyWWWboard 취약점을 이용한 포르노 사이트로의 악용

김 승 철 (kimsc@certcc.or.kr)


1. 개요

최근 들어 서버 시스템의 직접적인 해킹보다 웹 해킹 기법을 이용한 해킹이 증가하고 있다.
웹 해킹은 방화벽이나 침입탐지시스템에서 차단하기 어려운 TCP 80포트를 이용하며, 웹서버의 설정 오류 및 웹 어플리케이션 개발시 보안을 고려하지 않고 개발한 것이 원인이라 할 수 있다.

한국정보보호진흥원은 2002년 5월 이탈리아로부터 국내 웹사이트들이 아동포르노 사이트로 악용되고 있다는 신고를 접수받았다. 교회, 학교, 공공기관 등은 물론이고 많은 기업의 홈페이지가 아동 포르노사이트로 악용되어지고 있는 것을 확인할 수 있었다.

피해 사이트를 분석한 결과 CrazyWWWBoard의 취약점을 이용하여 포르노자료를 업로드한 것으로 확인되었다.

본 문서에서는 CrazyWWWBoard의 취약점을 이용한 악용사례 및 해결방법에 대하여 알아보도록 하겠다.


2. 문제점

아동 포르노 관련하여 포르노 자료를 업로드하는 해킹기법을 분석하는 과정에서 CrazyWWWBoard의 또 다른 취약점을 다수 발견할 수 있었다.

현재까지 발견된 CrazyWWWBoard의 취약점 및 문제점은 다음과 같다.


- qDecoder의 BufferOverflow 취약점
- 보드 관리자 ID 노출 및 변경불가 (ver. 2000 이후)
- Default Password 설정
- 파일 업로드 설정 여부에 상관없이 업로드 가능
- 업로드 기능을 이용한 게시판 파괴

1) qDecoder 버퍼오버플로우 취약점

BufferOverflow 취약점을 공격하여 성공하게 되면 Apache user 권한(일반적으로 nobody)을 획득할 수 있다. Apache user의 Shell을 획득하게 되면 시스템의 ROOT 권한을 쉽게 얻을 수 있고, CrazyWWWBoard 3.0.1 버전에서는 게시판을 원하는 만큼 생성할 수 있다.

다음은 qDecoder의 버퍼오버플로우 취약점을 공격하여 포르노 자료를 업로드하고 "ls"명령을 실행한 결과이다.


[root@localhost test]# ./xxxx.pl -x -xxx xxx.xxx.xxx.xxx/cgi-bin/CrazyWWWBoard.cgi
Jump to 0xbffffaf2
HTTP/1.1 200 OK
Date: Wed, 23 Oct 2002 02:33:42 GMT
Server: Apache/1.3.24 (Unix) PHP/4.2.1
Connection: close
Content-Type: text/html

CrazyWWWBoard OK
uid=99(nobody) gid=99(nobody) groups=99(nobody)
./hack/
./hack/hacker.html
./hack/img.jpg
[root@localhost test]#

웹브라우저에서 업로드한 html 파일을 요청하게 되면 아래와 같이 포르노 그림을 볼 수 있게 된다.

in2003_08_01.jpg

2) 변경할 수 없는 관리자 ID 및 Default password 문제점

크레이지 보드의 관리자 ID는 변경이 불가능하며, Default Password가 "xxxxxx"으로 설정되어 있다. 보안의식이 없는 관리자들은 Password를 변경하지 않고 그대로 사용한다. CrazyWWWBoard를 이용해 포르노 사이트를 운영하려는 크래커들은 이러한 CrazyWWWBoard의 문제점을 알고 있기 때문에 포르노 사이트로 쉽게 이용할 수 있는 것이다.

o 다음은 관리자 Password를 수정하지 않고 운영중인 사이트에 Default Password 입력하여 로그인한 결과이다.

in2003_08_02.jpg

- Default Password로 로그인 성공

in2003_08_03.jpg

3) 파일 업로드 설정 여부에 상관없이 자료를 업로드할 수 있는 취약점

CrazyWWWBoard의 관리자 모드에서는 보드의 각종 환경 설정을 할 수 있다.
글쓰기 화면의 항목을 추가 및 제거할 수 있어 파일을 첨부할 수 있게도 하고, 첨부할 수 없게도 할 수 있다. 하지만 첨부하는 기능을 제거하더라고 파일 첨부가 가능한 글쓰기 화면을 임의로 작성하여 파일을 업로드할 수 있는 취약점이 존재한다.

4) 업로드 기능을 이용한 게시판 파괴

업로드 기능의 유/무에 상관없이 특정 이름으로 된 파일을 첨부하여 글을 등록하게 되면 에러 메시지가 뜨면서 게시판의 리스트조차도 볼 수 없게 된다. 또한 해당 글을 읽을 수 없게 만들 수도 있다.

특정 파일명으로 파일을 생성하여 업로드 하게 되면 다음과 같은 에러메시지를 띄우며 게시판이 파괴된다.

in2003_08_04.jpg

※ CrazyWWWBoard의 이러한 많은 취약점을 이용하여 아동포르노사이트 및 파일서버로 악용되어지고 있다.


3. 해결책

1) qDecoder 버퍼오버플로우 취약점

o CrazwWWWBoard를 패치하거나 qDecoder.c 파일을 수정한다.
- 패치사이트 : http://www.CrazyWWWBoard.com/
- qDecoder.c 파일을 수정한다(아래 소스 중에서 적색으로 되어 있는 부분을 추가)


... 중략 ...
int c, c_count;
int finish;
int boundary_len;
entries = back = NULL;
/* find boundary string */
/* force to check the boundary string length */
boundary_len = strlen(strstr(getenv("CONTENT_TYPE"), "boundary=") + ,$s:LF> strlen("boundary"));
if (boundary_len >= sizeof(boundary) - strlen(" ----"))
qError("_parse_multipart_data() : the boundary string is too ,$s:LF> long!.");

sprintf(boundary, "--%s", strstr(getenv("CONTENT_TYPE"), ,$s:LF> "boundary=") + strlen("boundary="));
qRemoveSpace(boundary);
... 중략 ...

[ ▲ qDecoder.c 파일 수정 ]

2) 변경할 수 없는 관리자 ID 및 Default password 문제점

- CrazyWWWBoard의 관리자 Password를 8자 이상의 특수문자를 혼합하여 변경한다.

3) 파일 업로드 설정 여부에 상관없이 자료를 업로드할 수 있는 취약점

- 다음 사이트를 방문하여 패치한다.

4) 업로드 기능을 이용한 게시판 파괴

- 다음 사이트를 방문하여 패치한다.


4. 결론

국내 많은 사이트에서 CrazyWWWBoard를 사용하고 있다. 해당 사이트 관리자들은 취약점이 존재하는지 확인하고, 취약하다면 패치를 해야한다.

취약한 CrazyWWWBoard를 사용하므로 해서 수많은 사이트들이 다음과 같은 위험에 노출되어 있다.

  • 크레이지 보드를 사용하면 시스템 해킹의 위험성에 노출되며,
  • 게시판 자료를 모두 읽을 수 있고,
  • 게시판을 생성하여 자원을 불법적으로 사용해 시스템 부하를 증가시키며,
  • 게시판 파괴로 인하여 기관 및 기업의 이미지 실추,
  • 포르노 사이트 등으로 악용하여 해당 사이트 운영기관의 대외 신인도를 떨어뜨릴 수 있다.

아동포르노 자료가 업로드된 후 1개월 이상이 지났는데도 관리자는 모르고 있는 경우가 많다. 주기적인 점검이 이루어질 수 있는 관리자의 보안의식이 중요하다.

제공 : 한국정보보호진흥원(CERTCC-KR)

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,074 명
  • 현재 강좌수 :  35,995 개
  • 현재 접속자 :  487 명