2007/05/25 04:07
관리자 메일 발송 코드에서 $s_que 변수를 이용한 SQL Injection을 일으킬 수 있는 코드가 발견되어 패치합니다.

첨부된 admin_sendmail_ok.zip 파일의 압축을 풀면 나오는 admin_sendmail_ok.php파일을 사용하시는 제로보드4의 디렉토리에 덮어쓰시면 됩니다.

수정된 부분은 다음과 같습니다.

= admin_sendmail_ok.php ===============================================================

@@ -28,16 +28,18 @@
        if(!$true) $true = 0;
        if(!$nomailing) $nomailing = 0;
        if(!$sendnum) $sendnum = 100;
+    $group_no = (int)$group_no;
+    $s_que = '';
        if(!$total_member_num) {
                $temp=mysql_fetch_array(mysql_query("select count(*) from $member_table where group_no='$group_no'",$connect));
                $total_member_num=$temp[0];
        }

        if($cart) {
-               $temp=explode("||",$cart);
-               $s_que=" and ( no='$temp[1]' ";
-               for($i=2;$i<count($temp);$i++) $s_que.=" or no='$temp[$i]' ";
-               $s_que.=" )";
+               $temp = explode("||",$cart);
+        for($i=0;$i<count($temp);$i++) $target_srls[] = (int)$temp[$i];
+        $s_que = sprintf(' and ( no in (%s) )', "'".implode("','", $target_srls)."'");
        } else {


===============================================================================

위에서 - 가 붙은 줄은 삭제된 것을 의미하며 +가 붙은 줄은 추가된 것을 의미합니다.

이 보안버그를 알려주신 달팽이 (ID : mirr1004)님께 감사의 말씀 드립니다.


혹시 이 패치 적용후 메일 발송에 문제가 생기거나 보안 버그가 지속적으로 발견되면 꼭 알려주시면 감사하겠습니다.


원본 글 : http://www.nzeo.com/bbs/zboard.php?id=cgi_download2&no=57
Posted by DearMai
2007/05/10 01:07
일전 download.php의 sql injection 문제에 대해 패치를 하면서 띄워쓰기를 잘못하여 다운로드 동작이 정상적으로 되지 않던 문제가 발생하였습니다.
많은 분들이 통보를 해주셨는데 제가 미처 확인하지 못하고 있다가 이제야 수정된 파일을 올립니다.
너무 죄송합니다.

그리고 zboard.php, _head.php, member_memo3.php 파일에서 $s_que변수가 별도의 초기화 없이 사용되어 역시 SQL injection 보안 버그가 있음을 알려주셔서 lib.php 에서 $s_que변수를 초기화하도록 수정하였습니다.

첨부된 20070509.patch.zip 파일의 압축을 풀면  download.php, lib.php 2개의 파일이 나오는데 이를 기존 사용하시던 제로보드에 덮어써주시면 됩니다.

다운로드 패치 오류 신고해주신 이동하님과 $s_que변수를 이용한 취약점을 알려주신 조주봉님, 그리고 관련된 모든 분들께 감사하다는 말씀드립니다.

url : http://www.nzeo.com/bbs/zboard.php?id=cgi_download2&no=56

download.php 파일의 경우 기존에 문제 있던 SQL 쿼리 부분에 띄어쓰기 부분이 삭제 되었으며, 자세한 내용은 위에 '다운로드 패치 오류 신고' 링크를 클릭하시면 보실 수 있습니다.

lib.php 파일의 경우 39-41 라인에
unset($s_que);
$select_arrange = str_replace(array("'",'"','\\'),'',$select_arrange);
if(!in_array($desc,array('desc','asc'))) unset($desc);

다음의 내용이 추가되었습니다.
Posted by DearMai
2006/05/14 00:37
이전글보기 >> 제로보드 5는 더이상 제로보드가 아니다. #1

3. Ajax 기술의 도입으로 더욱 빨라진 웹 페이지
  최근 빠른 페이지 로딩과 유동적인 웹 페이지 모습을 구현 하는 장점등의 이유로 Ajax 가 사용되는 홈페이지가 많다. 이번 제로보드 5 에서도 이 기술이 도입되어 사용되고 있다. 현재 까지 공개된 곳에서는 게시판 모듈에서 로그인, 로그아웃, 트랙백, 코멘트 리스트 등과 관리자 모드 에서 각 설정 저장 및 페이지 설정 에서 모듈 및 플러그인 추가 및 삭제 부분(Google 에서 개인화된 페이지와 비슷) 부분에 적용 되어 있다.
  실제 사용해본 경험담으로는 대체로 Ajax의 도입이 편리함이 느껴졌지만 관리자 모드에서 몇몇 군대에서는 이전 페이지로 돌아갈 때 웹 브라우져의 "뒤로가기" 같은 기능을 이용했었는데 Ajax 기술이 도입된 부분에서 "뒤로가기" 기능을 사용 했을 때 원했던 화면과는 전혀 다른 페이지가 나와 불편한 점이 느껴졌다. 이 부분을 건의 드리니 UI를 좀더 최적화 해서 "뒤로가기" 버튼을 이용 할 필요가 없도록 만들거나, 다른 방법으로 개선 하기로 하였다.

4. 보안의 최적화
  제로보드 4 의 최고의 문제점으로 고르자면 바로 보안 문제 일 것이다. 실제로 제로보드 4의 기능 및 버그 패치는 제로보드 4.1 patch level 2(2002.06.09 릴리즈)가 마지막이며, 이후로는 4.1 pl 8(2006.03.15 릴리즈) 까지 보안버그 패치만 있었다. 허나 아직 까지 해결되지 않은 보안 버그가 존재 하며(공식적인 보고가 되지 않은 보안 버그) 버그 사항도 남아있다. 이제 제로보드 4 는 기능 개선 등으로 인한 패치는 없을 것이고 보안 버그 및 치명적인 오류 인 부분만 패치 되어 발표 될 것이다. 사실 제로보드 5의 발표가 바로 앞이라서 더 이상의 제로보드 4 버전대의 지원이 없을 수 도 있다. 이후 자세한 내용은 뒤에 다루도록 하겠다.
  제로보드 5의 경우 제로보드 4대의 최고의 문제점인 보안 문제를 해결하기 위해 처음 개발 단계 부터 첫번째 사항으로 보안 문제 해결 을 중심으로 개발 되었다. 지금 이야 아직 공개적으로 발표 되지 않고 NZEO.com 운영진들을 통해 NZEO 내부에서 임시 테스트만 진행 중이라 아직 보안에 관한 문제점은 발견되지 않고 사소한 버그 사항과 기능 개선 문제점만 발견 되고 있다.
제로보드 개발 단계로 일단 내부 테스트를 거친후 정보보호진흥원(KISA) 해킹팀에서 소스 코드 검사를 거친후 정식 릴리즈가 될 예정이다. 자세한 사항에 대해서는 공개 할 수는 없지만 일단 예정으로는 6월 중순쯤일 꺼라 예상 된다.


ㅁ 제로보드 5 사용기
  올해초 NZEO 내부에서 zero 님께서 제로보드 5 개발을 시작한다고 발표 하고 어제(05.12) NZEO.com 운영진에게만 공개되어 내부 테스트가 공개 되었다. 공개된 제로보드 5 는 "진짜 이것도 홈페이지냐?" 라는 말이 나올정도로 진짜 이미지 하나 없고 폰트도 브라우져 기본값으로 되어 있고 테이블도 border 값만 조금 주워 윤곽만 있는 형태 였었다.(제로보드 4.0 버전대에 보면 기본 default 게시판 스킨이 이런 모습이다.)

  하지만 이전 제로보드 버전대 처럼 게시판이 아닌 웹사이트로서의 모습이 맞춰줘 있었다. 공개 된 제로보드 5 는 현재 nzeo.com 모습을 간단하게 구현해 있었다. 3 depth 의 메뉴와 1 depth 페이지 마다 보이는 최근 게시물, 좌측 상단에 보이는 아웃로그인. 이 모든게 나모나, 드림위버등 이지윅에디터로의 제작이나 Editplus, UltraEdit 같은 에딧트프로그램으로 제작한 HTML, PHP 페이지가 아닌 제로보드 5 하나만 가지고 제작된 모습이였다.

  사이트빌더 제로보드 5 로 제작된 홈페이지는 제작 방법은 국내 포탈 사이트에서 지원하는 무료 홈페이지 제작 마법사로 제작된 홈페이지와 만드는 과정은 비슷하지만 훨씬 더 자율성이 있으며 뛰어난 기능을 자랑 하였다. 게시판 은 모듈로서, 최근 게시물, 아웃 로그인 부분은 플러그인 으로서, 메뉴 를 구성 해주고 페이지에다가 모듈과 플러그인을 이지윅 방식으로 배치시켜주고, 레이아웃을 적용 시켜주고, 기본적인 사이트 정보를 입력해주면 제로보드 5 를 이용한 홈페이지 개발은 끝이다. 너무 간단하지 않는가?

  하지만 이전 제로보드 3 에서 제로보드 4 버전대로 넘어 갈 때에는 3 버전과 4 버전이 거의 비슷한 구조를 가지고 있고 크게 바뀌지 않아서 사람들도 쉽게 업그레이드를 할 수 있었고 적응도 편리 했었다. 하지만 제로보드 4 에서 5 버전대로 넘어 가는 시점. 게시판 솔루션에서 사이트 빌더 로 넘어 가는 과정이 이전 버전과는 너무 크게 바뀌게 되어 부담감이 없지 않아 있다. 이전 제로보드는 게시판 기능과 회원관리 기능 정도만 지원 하는것이 이제는 사이트 전체를 지원하는 프로그램이 되어 나타낫기 때문이다. 이전 처럼 게시판 만 이용 하고 싶을때는 제로보드 5 로도 가능한지는 아직 모르겠다. 가능 하다면 별 문제가 없겠지만 이부분이 않된다면 불편감을 느끼는 유저들도 있을 것이다.

  그리고 요즘 홈페이지를 손쉽게 운영 할 수 있다는 장점 때문에 미니 홈피, 블로그 등을 이용 하는 유저들이 많다. 네이버, 싸이월드 등 포탈 사이트에서 제공하는 서비스를 이용 하는 사람과, 테터툴즈, 워드프레스 처럼 각자 계정에 직접 설치 하여 사용하는 설치형 서비스를 이용하는 유저들이 있다. 제로보드 5는 블로그에서 제공하는 고유링크, 트랙백 기능을 지원하고 있어 블로그 처럼 운영도 가능함과 동시에 추가적인 페이지 구성도 할 수 있는 장점이 있어 일반적인 테터툴즈나 워드프레스 보다 더욱더 강력한 프로그램으로 나타날 것 같다.

  아직 디자인 부분이 적용되지 않았고 뼈대만 있어서 그런지 아직 제로보드 5의 편리함을 느끼기엔 부족했다. 아직 적응이 않되서 인지 아님 디자인이 적용않되서 인지 다루기 어려운 부분도 보였고, 아직은 개발단계이다보니 제작이 덜 된 부분이나 자잘한 버그같은 것이 보였다. 하지만 아직 베타 공개도 되지 않은 개발 단계의 제로보드 5 이니 다음달 공개 될 제로보드 5 는 정말 완벽한 사이트 빌드로서의 국내 최고의 오픈 소스 프로그램으로 거듭나리라 믿는다.
Posted by DearMai
2006/05/14 00:37
5월 12일 오후 7시 NZEO.com 홈페이지에 제로보드 5 개발 안내 공지가 올라왔다.
이미 내부 적으로는 zero님의 제로보드 5 개발 공지와 현재 운영진들 사이에서 내부 테스트 중이다.
공지에서 밝힌데로 현재 제로보드 5는 90% 가량 개발되었으며, 남은 부분은 자잘한 기능 추가와 불편 사항및 버그 수정, 그리고 디자인을 입히는 과정이 남아있다.
현재 내부 테스트 중인 제로보드 5는 디자인이 하나도 입혀지지 않아서 그냥 텍스트와 표로 이루어진 레이아웃에 뼈만 앙상하다 -ㄴ-;;
이번 제로보드 버전 1 부터 4까지 게시판을 기본으로한 추가 회원관리 기능과 쪽지 기능등이 포함되어 있던 게시판 솔루션 모습(1, 2는 안써봤지만 아마 비슷할꺼라 생각;)인 제로보드 이라면, 이제 나오게될 제로보드 5는 NZEO.com 의 부제(For sitebuilder)에 맞춰 진정한 사이트빌더의 모습으로 태어나게 될 것 이다.



1. Cross Browsing 를 위한 태그 및 자바스크립트 표준 준수
  MS의 IE가 전세계 웹브라우져 시장의 대부분을 차지하면서 그동안 Cross Browsing(웹페이지 상호호환성)이 거의 무시되고 있던 현실이였다. 이 때문에 IE 에서는 문제 없이 잘 보이지만 다른 웹브라우져(NS, Firefox, Opera 등)에서는 레이아웃이 깨지거나 스크립트 오류가 나는등 오류 투성이인 페이지가 뜨거나 아예 IE 를 제외한 다른 웹브라우져를 이용하는 유저들의 접근을 차단하기도 했다.

  최근 FireFox 브라우져가 인기를 끌고 Web 2.0의 등장과 XML 을 이용한 블로그 등 점점 Cross Browsing을 위한 웹 표준 준수가 화두되고 있다. 이전 제로보드 4 는 그동안 개발자들이 써오던 기본적인(IE 에 맞춰진) 태그, 스크립트 형식을 써 왔다. 대부분의 사용자들은 IE를 이용하기 때문에 별 문제가 없었지만 다른 브라우저를 사용하던 소수의 이용자들은 제로보드를 이용할 수 없거나 오 작동되는 사래가 많았다.

  허나 이번 제로보드 5는 개발 단계 부터 FireFox 에서 개발되어 FireFox 플러그인을 통한 HTML, CSS 유효성 검사를 하여 Cross Browsing 을 완벽히 지원하게 되었다. 실제로 내부 테스트로 제로보드 5를 IE와 FireFox 로 둘다 이용해 본 결과 두 브라우져에서 동일한 모습으로 오 작동 되는 부분을 발견 되지 않았다.

2. 사이트 빌드로서의 제로보드 5
  제로보드 5의 가장 중요한 부분이 더 이상 게시판 솔루션이 아닌 사이트 빌더로서 태어나는 것 일 것이다. 사이트 빌더란 프로그램 하나로 전체 사이트를 제작 할 수 있는 프로그램을 뜻 한다. 포탈 사이트를 보면 간단하게 메뉴 구성과 내용, 사진 등을 입력하면 간단한 홈페이지가 바로 만들어 지는 것과 비슷하다.

  제로보드 5의 관리자 모드에서는 다음과 같은 사이트 빌더 기능을 지원한다.

사이트 관리, 모듈 관리, 플러그인 관리, 페이지 관리,
레이아웃 관리, 메뉴 관리, 회원관리, 서버 관리
(현재 내부 테스트 되고 있는 제로보드 5의 관리자 메뉴 구성이니 언제든지 변경될 수 있다.)

1) 사이트 관리
  사이트 관리는 제로보드 5를 운영하게 될 사이트의 기본 정보를 입력하는 곳이다. 브라우저 타이틀, 메타 정보, 회원 관리 방법, 사이트 확장 등 사이트 운영에 대한 기본적인 정보들을 입력하는 곳이다.

2) 모듈 관리
  제로보드 5 에서 모듈 이란 게시판 기능을 가진 모듈 이람을 뜻한다. 이전 제로보드 4 에서는 게시판 추가/삭제 로 게시판들을 관리 했지만, 제로보드 5 에서는 모듈로 칭하게 되어 모듈을 추가 할때 이 모듈을 게시판 모듈을 이용하나 다른 모듈을 이용하나를 선택하고 사용한 모듈에 대한 설정을 하고 사용하게 된다.

예를 들면 제로보드 4 기준으로 공지사항(notice), 자유게시판(freeboard), 방명록(guest) 라는 2개의 게시판 형식과 1개의 방명록 형식의 게시판을 이용한다면, 일단 3개의 게시판을 생성하고 스킨을 각자 게시판에 맞게 설정 해주고 방명록은 방명록 사용에 체크를 하여 사용 하게 될 것이다.

  허나 제로보드 5 에서는 3개의 게시판 이용을 위해 모듈 등록 버튼을 누른후 모듈이름(공지사항, 자유게시판, 방명록)을 입력한후 간단한 설명을 적고, 모듈 접근 권한(제로보드 4에서 게시판 접근 권한)을 설정 한후 모듈 선택(게시판, 현재 내부 테스트 중인 제로보드 5 에서는 게시판 모듈만 제작되어 있다.)을 하여 게시판 생성을 하게 된다.

  하지만 제로보드 4에서는 게시판 생성만 하면 게시판 고유 링크를 통해 게시판을 이용 할 수 있었지만 제로보드 5에서는 모듈 추가만 해서는 이용 할 수 없다.(가능한지는 정확히 모르겠지만 아직 방법이 공개되어 있지 않고 제로보드 5가 사이트 빌드 개념이라 제로보드 내에서 페이지로 연결 되어야 사용가능 하도록 설정되어 있다.) 추가적으로 페이지, 레이아웃, 메뉴 관리 작업을 더 해줘야 사용이 가능 하도록 되어있다. 어찌보면 제로보드 4와 비교하면 불편한 방법이긴 할 테지만 사이트 빌더 로서의 제로보드 5에서는 간단하면서 당연한 기능일 수도 있다.

3) 플러그인 관리
  제로보드 4 에서 사용하던 최근 게시물, 아웃 로그인 등은 이제 제로보드 5 에서 플러그인 추가로 간단히 이용 할 수 있다. 미리 제로보드 5에 설치된 최근 게시물 플러그인을 가지고, 플러그인 관리에서 플러그인 추가 버튼을 눌러 최근 게시물 플러그인을 선택 하고 게시물을 뽑아올 게시판을 선택 하고 세부 설정을 해주면 최근 게시물 사용은 이로서 끝이다. 이렇게 만들어진 플러그인은 페이지 관리 에서 Drag & Drop 을 통해 위치 선정 및 추가, 삭제를 할 수 있도록 제작 되어 있다.

4) 페이지 관리
  페이지 관리는 나모나 드림위버에서 웹페이지 추가/삭제 하는 것과 비슷하다. 홈페이지내 사용될 페이지를 추가/삭제 하고 해당 페이지에 보여질 내용들을 입력하거나 플러그인으로 제작된 최근 게시물등을 손쉽게 추가 시키고 위치를 맞추는 등 아주 간단한 방법으로 페이지 제작이 가능 하다.

5) 레이아웃 관리
  홈페이지의 전체 레이아웃을 설정 하는 부분이다. 레이아웃을 따로 스킨 처럼 추가 파일로서 레이아웃이 결정되며, 이 부분은 레이아웃 스킨에 대한 세부 설정을 하는 곳이다.

6) 메뉴 관리
  홈페이지 전체의 메뉴 구성을 설정한다. 메뉴 모습은 탐색기의 폴더 리스트 형식으로 왼쪽에 가까울 수록 상위 메뉴 이며, 오른쪽으로 갈 수록 하위 메뉴 인 모습이다. 페이지 관리에서 생성된 페이지들을 이 메뉴에 맞춰 링크 시켜 메뉴관리가 끝나면 레이아웃에 맞춰 사이트 개발이 완성 되는 것이다.

7) 회원 관리
  회원 관리 부분은 제로보드 4버전과 비슷하다. 회원 가입/탈퇴, 수정, 가입폼 관리 등 이전과 비슷한 부분이 있으며, 권한 체크 부분은 제로보드 4와는 조금 다른 모습을 하게 될 것이다. 아직 이부분에 대해서는 테스트를 많이 해보지 않아서 정보가 부족하다.

8) 서버 관리
  서버 관리 부분은 여러대의 서버를 이용 하는 사이트 에서 이용 하게 될 부분으로 추측 된다. 현재 웹서버, 파일 서버로 구분 되어 있는데 웹 서버는 당연히 사이트가 운영될 부분일 것이고, 파일 서버는 파일 업,다운로드시 사용될 서버를 지정 하는 것 같다. 이부분도 테스트 할 수 없어서 정보가 부족하다.
제로보드 4 에서는 따로 나모나, 드림위버, 에딧플러스 등에서 HTML, PHP 등 작업을 해야 홈페이지 제작이 가능했었는데, 이제는 계정에 제로보드 5를 설치 하고, 플러그인과 스킨, 모듈등을 추가 시키고 메뉴 구성 및 페이지 구성만 해주면 손쉽게 멋진 홈페이지 제작이 가능 하게 되었다. 이전 제로보드의 모습들과는 너무 많이 바뀌어서 혼란이 있을 것 같지만 적응 된다면 강력한 제로보드 5 모습에 매료 될 것이다.

다음글 보기>> 제로보드 5는 더이상 제로보드가 아니다. #2
Posted by DearMai
2006/05/13 11:10
너무 오랫동안 이 안내가 미뤄진 거 같아서 죄송할 뿐입니다.

현재 제로보드5는 90% 정도 개발되어 있습니다.

작년 말부터 시작했는데 스스로도 개념이 잡히지 않아서 벌써 5달이 넘어가네요.


기존 제로보드4 가 게시판+회원관리라면 제로보드5는 완전한 사이트 빌더의 개념입니다.

메뉴를 tree구조로 편성을 하고 레이아웃을 선택하면 사이트가 완성이 됩니다.

각 메뉴별로 모듈(게시판..)을 지정할 수도 있고 관리자 페이지에서 html 페이지를 제작하여 지정할 수도 있습니다.

트랙백 or 고유링크 등이 기본으로 되며 이것 저것 요즘 추세에 맞게 개발되고 있습니다.

템플릿 엔진은 스마티( http://smarty.php.net )을 이용하며, FF에서 개발을 하여 html 표준을 정확히 지키고 있습니다.

그 동안 제로보드4가 가지고 있던 문제들을 다수 해결하려고 노력하고 있습니다.

이 외에도 기본 utf-8, 랭귀지셋 지원, 각종 플러그인, 회원가입폼 설정, 위지윅에디터등 나름 편리할 수 있도록 개발중입니다.

위지윅에디터/계층형코멘트/회원간 쪽지/사이트통계기능등 아직 전체적으로 볼땐 5%도 안되지만 중요도에서 10% 이상을 차지하는 부분에 대한 막바지 개발을 하고 있습니다.

곧 개발은 완료하고 기본 모듈스킨/플러그인스킨/레이아웃템플릿등의 디자인을 붙여서 베타 꼬리 붙인 후 보여드릴 수 있도록 하겠습니다.

제로보드5는 초기부터 보안과 관련해서 정보보호진흥원(KISA) 해킹대응팀의 협조를 얻어 보안 부분을 철저히 검증하도록 하겠습니다.

그리고 제로보드5 는 GPL 라이센스를 따를 예정입니다.

제로보드5가 서비스형 블로그/카페들과 다른 영역에서 많은 도움을 드릴 수 있었으면 합니다.



참, 이제 7개월 되가는 이쁜 딸래미가 인사드립니다~~~~~



모두 좋은 하루 되세요.


Posted by DearMai
2006/03/16 02:34
기존 제로보드 4.1 pl7에서 보안버그를 수정하였습니다.

수정된 버그 내용은 다음과 같습니다.

- 이미지 파일 업로드 하는 부분에서 확장자(gif/jpg)를 무시하고 임의의 스크립트 파일을 올릴 수 있던 버그 수정
- sql injection 취약성 제거
- XSS(크로스 사이트 스크립팅) 취약성 제거

입니다.

[다운로드 받기]

ps. 관련 내용을 알려주신 한국정보보호진흥원(KISA) 해킹대응팀의 김영직님에게 감사의 말씀을 드립니다.
Posted by DearMai