제로보드4의 패치가 또 나왔습니다. 수정된 부분이 아래 있으니 해당부분에 붙혀넣기 하여 수정

하시거나
http://nzeo.com 에서 패치파일을 받아 적용하시기바랍니다. 아래는 원문입니다.

---------------------------------------------


관리자 메일 발송 코드에서 $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)님께 감사의 말씀 드립니다.


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

제로보드4 pl8 의 보안패치가 새로 배포되었습니다. 원문에 따르면 download.php 의 sql injection

문제에 대한 수정과 lib.php에 대한 수정이 있다고 합니다. 댓글의 DearMai 님의 글에

lib.php 파일에 39번~41번줄까지 아래의 내용이 추가되었다고 하니 기존의 쓰던파일을 수정해서

쓰고계신분들은 따로 수정하시면 되겠습니다.

40a39,41
> unset($s_que);
> $select_arrange = str_replace(array("'",'"','\\'),'',$select_arrange);
> if(!in_array($desc,array('desc','asc'))) unset($desc);

나머지 부분은 추가로 어느부분이 수정된지는 자세히 모르겠고 전체적인 패치된 파일의 목록은

아래와 같습니다.

image_box.php
member_join_ok.php
member_modify_ok.php
login_check.php
lib.php
member_memo.php
member_memo2.php
member_modify_ok.php
license.txt

http://www.nzeo.com 에서 패치파일을 다운로드 하실수 있고 자세한 패치내용도 확인하실수

있습니다.

제로보드 5가 개발자분의 개인적사정으로 잠정적인 업데이트 중단이 된데에 이어서 NHN의 협조로

오픈프로젝트인 제로보드 XE가 개발중에 있습니다. 원문에서는 6월말이 넘어서나 클로즈베타

테스트를 행할것 같다고 합니다. 개인적으로 제로보드 4를 상당히 유용하게 써봐서 오픈프로젝트

인 이 제로보드 XE에 상당한 관심이 갑니다. 다만 이왕나오는것 UTF-8 버전과 EUC-KR 버전이

함께 나왔으면 하는 바램입니다.

2. 텍스트큐브의 소식
 기존의 테터툴즈의 1.1.2.x 버전에서 1.5의 버전을 가지고 나올 텍스트큐브가 개발중에 있습니다.
사용자 삽입 이미지

공지 원문에 따르면 아래와 같이 설명하는데 테터툴즈라는 블로그 쓰는데에만 관심있다보니

아래같은 내용이 뭘 뜻하는지는 자세히 모르겠습니다.

기존의 설치형 블로그인 태터툴즈의 경우, needlworks에서 설치형 프로그램 코어(프로젝트 S2)의 설계및 제작을 전담합니다. 프로젝트 S2의 정식 명칭이 Textcube로 결정되었습니다.

한 줄 요약 : TNC/TNF 태터툴즈 -> Needlworks/TNF 텍스트큐브

다만 버전이 갑자기 높아짐에 따라 사용자 들의 혼란이 약간 있을듯 합니다. 디렉토리들의 구조가

많이 바뀌어서 기존에 사용하던 테터툴즈의 (blog, style, doc, component, script, lib) 디렉토리를

삭제후 textcube를 설치할것을 권장하고 있는데 현재 텍스트큐브 알파버전의 디렉토리 구조는

다음과 같습니다.

사용자 삽입 이미지

원문내용대로 기존의 테터툴즈 블로그의 위에 써놓은 폴더들을 삭제하고 텍스트큐브를 덮어씌워

봤는데 이상없이 작동합니다. 지금 vmware에서 사용하는 APM이 테스트용이라 기존 테터툴즈

블로그의 글이 한개도 없어서 이상이 없는지는 모르겠습니다만 불안하다면 기존의 테터툴즈의

데이터를 XML로 첨부파일과 함께 모두 백업하여 텍스트큐브에 저장하여도 호환성이 유지된다고

하니 텍스트큐브가 정식 런칭 된 후에는 이방법을 쓰는것이 제일 깔끔할듯 싶습니다.

대신 플러그인의 경우는 공식플러그인이 아닌경우엔 기존에 쓰던 플러그인에서 몇가지 에러가

발생할수도 있겠다는 생각이 듭니다. 그리고 백업한 파일의 크기가 클경우 복원이 안될경우가

있으니 필히 원래의 데이터를 XML저장이 아닌 전체백업을 해두는것이 좋습니다.

주의! : 글작성후 텍스트큐브에 제가쓰는 테터툴즈 1.1.2.2 의 데이터를 import 시켜봤

습니다. 결과는 복구가 안됐습니다. 테터툴즈 끼리는 구,신버전간 복구가 잘됐고 티스토리

에서도 복구가 잘됐습니다. 지원하지 않는 데이터라고 표시된후 복구가 되지 않는군요..
  • BlogIcon 박디 2007.05.11 19:43

    음.. 궁금증이 한번에 해결되는 글이군요. 사용자를 위한 테터툴즈의 노력에 감사하고

    텍스트 큐브 beta를 빨리 사용해보고 싶군요..ㅎ

(이 강좌는 운영자 미니홈피 http://cyworld.com/hy313 에서도 보실 수 있습니다.)

앞에서는 Zboard 설치를 위한 mysql의 DB만들기에 대해서 알아보았다. 이번에는 zboard설치에

대해서 알아볼것이다.현재 4.1pl8버전이 최신버전이므로.. 받아서 설치를 해보겠다.

기본폴더는 C:\APM_Setup\htdocs\ 에 그대로 압축을 풀어주면 된다. bbs폴더를 htdocs에

해제해주면 된다. 해제한뒤..(덧붙혀 제로보드5 베타의 경우는 UTF-8을 기본규격으로 만들어져서

아마도 지금 최신버전의 APM_Setup에서는 글꼴이 모두 깨져보일수가 있다. 확인한 바가 없어서

잘은 모르겠다.)

사용자 삽입 이미지

현재 필자는 테스트를 위해 가상호스트를 이용해서 기본폴더가아닌 다른곳에 설치를 하고있다.

기본적으로는
http://127.0.0.1/bbs/install.php 로 접속하면 위와같이 뜬다.

약관에 동의 하고 설치를 하겠다고 하면 아래와 같은 화면이 뜬다

사용자 삽입 이미지

아까 만들었던 mysql의 db가 이제 제대로 쓰일것이다. hostname에는 우리가 DB를 만들때

localhost를 사용했기 때문에 그대로 두면 된다. SQL user ID엔 DB를 만들때 썼던 board2를

쓰면된다. password또한 DB를 만들때 썼던 암호를 써주면 되고 맨밑의 이름또한 board2로 쓰면

된다. 이상없이 마치면..
 

사용자 삽입 이미지

관리자 정보를 입력받게 된다. 자신이 실제 제로보드를 관리할때 쓸 ID와 암호 그리고 사용자명등을

맘에 드는대로 사용하면 된다. 이는 mysql DB와 상관없고 제로보드관리에만 상응하는 부분이다.

따라서 가능하면 mysql DB암호와 제로보드 관리자 암호는 관계없이 설정하는것을 권장한다.

사용자 삽입 이미지


모두끝나면 이렇게 관리자 ID와 암호를 입력받는 항목이 뜨고 앞서 설정했던 제로보드 관리자 ID와

암호를 입력하면 마침내 제로보드의 메인화면을 볼수있게 된다.

(3장에서 계속됩니다.)

(이강좌는 운영자 싸이월드 미니홈피 http://cyworld.com/hy313 에서도 보실수있습니다.)

여기까지 이상없이 통과하신 분들은 이제 APMSETUP을 이용한 게시판의 활용에 대해서 알아볼것

이다. 근사모에 동영상강의로 매우 쉽게 설명하고 있으나 동영상이 지루하니까 여기서 그냥 설명하

도록 하겠다. 일단  설치하기에 앞서 http://nzeo.com 을 접속해서 제로보드 4.1pl8(06.4.5까지 최신

버전)을 다운로드 한다. tar.gz로 끝나는 리눅스용이 아니라 윈도우용인 zip압축 파일을 받도록 한다.

일단 제로보드를 이용하기 위해서 http://127.0.0.1/myadmin 으로 접속하여 mysql의 DB를

만들어줘야한다

사용자 삽입 이미지

여기서 root로 물론 초기암호는 apmsetup이고 앞서 강좌에 따라 암호를 바꿨다면 그암호를
 
사용하여 접속하면 된다.

사용자 삽입 이미지

접속하면 이렇게 초기화면이 뜨고 여기서 새데이터베이스 만들기에 자신이 사용할 보드의

DB명 쉽게 말해 그냥 맘에 드는 이름을 입력해준다. 필자는 여기서 board2로 입력을 했다.

후에 위의 데이터베이스 항목위의 집버튼을 눌러 초기화면으로 돌아온다

(덧붙혀서 만약 APMsetup내부에서 Mysql만 버전업그레이드를 했을경우 제로보드4를 설치할때

 만들 테이블의 Collation을 UTF-8에서 EUCKR로 바꿔줘야한다. 이점에 대해선 나중에 올리도록
 
 하겠다.)

사용자 삽입 이미지

이 초기화면에서 새사용자 추가를 누른다.
사용자 삽입 이미지

머리아프게 여러가지 설정 란이 있다. 사용자란을 board2
로 하고 암호를 써주었다. 밑에 generate

password는 말그대로 랜덤하게 암호를 만들어주는 별로 쓸데 없는 기능이다. 어쨋든 이렇게 해준뒤
맨 밑의 실행 버튼을 누르면..
사용자 삽입 이미지

이와 같은 화면이 뜬다. 윗화면이며..밑의 화면은..
사용자 삽입 이미지

화면에서 짤렸는데 암호변경 위의 항목을 보면 데이터베이스에 대한 권한이란 항목이 있다. 여기서

다음데이터베이스에 권한추가하기에서 board2 를 선택해주면 다음화면으로 넘어간다.
사용자 삽입 이미지
여기서 데이터베이스에 대한 권한에 모두 체크해주고 바로밑의 실행을 눌러주면 권한설정 업데이트

가 완료되었다고 뜨게된다. 자 여기서 다시 맨위의 사용권한탭을 눌러주면 맨밑에

주의:php어쩌고 나오는곳에 reload the privileges 라는 항목이 있는데 이를 실행시켜준다.

실행시킨뒤엔 사용권한이 다시 로드되었다고 뜨게 된다. 이렇게 해서 제로보드 설치를 위한 My sql 

DB만들기가 끝난 것이다. 확인을 위해서 왼쪽 집메뉴 옆에 로그아웃을 하여 board2를 id로 로그인을
 
해본다.

(2장에서 계속됩니다.)

  • DB생성초보자 2014.05.13 19:52

    좋은정보감사합니다.

    • BlogIcon 박디 2014.06.25 21:31 신고

      이 글을 쓴지 굉장히 오래됐었네요. ㅎㅎ PHP Myadmin으로
      간단한 관리는 가능하지만 가능하면 SQL툴을 사용하시는것을
      권장하고 싶습니다.