[보안패치] 그누보드 4.31.11 > 그누4 다운로드

그누4 다운로드

여러분께서 보고 계시는 이 사이트는 그누보드4 최신버전으로 제작, 운영되고 있습니다.
SIR은 그누보드를 만들 뿐 프로그램의 설치, 운영방법, 설정문제에 관한 도움을 드리지는 않습니다.

[보안패치] 그누보드 4.31.11 정보

[보안패치] 그누보드 4.31.11

첨부파일

gnuboard4.tgz (1.8M) 6528회 다운로드 2009-07-20 10:08:26
gnuboard4.utf8.tgz (1.8M) 2436회 다운로드 2009-08-29 15:58:12

본문

4.31.11 (09.07.14)
    :  파일을 변조후 업로드된 파일을 이용한 보안취약점을 보완 (반드시 패치해 주십시오.)

        lib/common.lib.php : view_file_link() 함수
        bbs/write_update.php : 파일 업로드 부분
        bbs/register_form_update.php : 회원아이콘 업로드 부분


*** 수정된 부분 입니다.

lib/common.lib.php 의

    //=============================================================================================
    // 동영상 파일에 악성코드를 심는 경우를 방지하기 위해 경로를 노출하지 않음
    //---------------------------------------------------------------------------------------------
    /*
    else if (preg_match("/\.($config[cf_movie_extension])$/i", $file))
        //return "<embed src='$g4[path]/data/file/$board[bo_table]/$file' $attr></embed>";
        return "<script>doc_write(obj_movie('$g4[path]/data/file/$board[bo_table]/$file', '_g4_{$ids}', '$width', '$height'));</script>";
    */
    //=============================================================================================



bbs/write_update.php 의

        //=================================================================\
        // 090714
        // 이미지나 플래시 파일에 악성코드를 심어 업로드 하는 경우를 방지
        // 에러메세지는 출력하지 않는다.
        //-----------------------------------------------------------------
        $timg = @getimagesize($tmp_file);
        // image type
        if ( preg_match("/\.($config[cf_image_extension])$/i", $filename) ||
            preg_match("/\.($config[cf_flash_extension])$/i", $filename) )
        {
            if ($timg[2] < 1 || $timg[2] > 16)
            {
                //$file_upload_msg .= "\'{$filename}\' 파일이 이미지나 플래시 파일이 아닙니다.\\n";
                continue;
            }
        }
        //=================================================================

        $upload[$i][image] = $timg;

...

        //$upload[$i][image] = @getimagesize($dest_file);



bbs/register_form_update.php 의

                //=================================================================\
                // 090714
                // gif 파일에 악성코드를 심어 업로드 하는 경우를 방지
                // 에러메세지는 출력하지 않는다.
                //-----------------------------------------------------------------
                $size = getimagesize($dest_path);
                if ($size[2] != 1) // gif 파일이 아니면 올라간 이미지를 삭제한다.
                    @unlink($dest_path);
                else
                // 아이콘의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제
                if ($size[0] > $config[cf_member_icon_width] || $size[1] > $config[cf_member_icon_height])
                    @unlink($dest_path);
                //=================================================================\



*** 이번 버전부터

convert
cheditor
geditor

폴더는 제거하여 배포됩니다.

댓글 전체

register_form_update.php를 업데이트한 후 회원가입하면 '정상적인 접근이 아닌것 같습니다'라고 나옵니다. 예전 파일로 복구하면 괜찮구요. 토큰 비교 부분 문제 같은데...다른 분들은 괜찮으신가요?
아이콘 업로드 말고 사진 업로드는 괜찮나요?


// 사진 업로드
$mb_pic = "";
if (is_uploaded_file($_FILES[mb_pic][tmp_name]))
{
    //if (preg_match("/(\.jpg)$/i", $_FILES[mb_pic][name]))
if (preg_match("/\.(jp[e]?g|gif|bmp|png)$/i", $_FILES[mb_pic][name]))
    {
        // 이미지 용량이 설정값보다 이하만 업로드 가능
        if ($_FILES[mb_pic][size] <= $config[cf_member_pic_size])
        {
            @mkdir($mb_dir, 0707);
            @chmod($mb_dir, 0707);
            $dest_path = "$mb_dir/$mb_id.jpg";
            move_uploaded_file($_FILES[mb_pic][tmp_name], $dest_path);
            chmod($dest_path, 0606);
            if (file_exists($dest_path))
            {
                $size = getimagesize($dest_path);
                // 이미지의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제
                if ($size[0] > $config[cf_member_pic_width] || $size[1] > $config[cf_member_pic_height])
                    @unlink($dest_path);
            }
        } else
        {
            $msg = "$_FILES[mb_pic][name]} 파일의 용량이 " . number_format($config[cf_member_pic_size]/1000) . "k 바이트보다 크므로 업로드 할 수 없습니다.\\n";
        }
    }
    else
        $msg .= $_FILES[mb_pic][name] . "은(는) jpg/gif/bmp/png 파일이 아닙니다.";
}
늘 감사하게 잘 사용하고 있습니다.
패치로 인한 문제는 아닌듯하지만 문제가 보이던데요..그냥 여기다 적어도 될라나?
아무튼
첨부파일 첨부시 첨부파일명에 공백이 포함되어 있으면 일부 PC에서 보이지 않거나
다운로드 되지 않는 현상이 있습니다.
urlencode하게 되면 파일명에 공백이 +로 변환이 되고 %는 제거되지만
+의 경우는 특수문자로 그대로 남아 또다시 %문자로 변환되어 보여주기 때문인듯 합니다.
임의로 공백의 경우 _ 로 대체하면 어떨까 싶은데요~
$upload[$i][file] = abs(ip2long($_SERVER[REMOTE_ADDR])).'_'.substr($shuffle,0,8).'_'.str_replace('%', '', urlencode($filename));

이 부분이

$upload[$i][file] = abs(ip2long($_SERVER[REMOTE_ADDR])).'_'.substr($shuffle,0,8).'_'.str_replace('%', '', urlencode(str_replace(' ', '_', $filename)));

이렇게 되겠네요
아름님 처럼 저도 똑같은 증상이네요.
최근갤러리 스킨과 갤러리 게시판을  그누4.31.11 설치한곳에 사용할려닌까 에러나더군요.
서버 셋팅은 동일한데 apm 모두 똑같은 버전인데요.
2월3일 다음 것부터  하지 않고 7월14일 것만 파일교체 하였는데 문제 없는 것인가요?
아시는 분 답변좀 부탁드립니다..

질문추가.
파일만 교체하였는데요.
회원들 거의전부가 비밀번호가 변경되었다고 나옵니다. 무슨 문제가 있는 것인지요..

비번하고는 전혀 상관없는 패치인 것 같습니다만, 혹시나해서 말씀드립니다.
인코딩은 원래 euc를 쓰고 있는데요. 서버는 utf8로 쓸 수 밖에 없어서 코드를 변형시켜서 적용되도록 해놨어요 혹시 이것때문에 문제가 생긴걸까요..
관리자 화면은 나오는데  다음 error
-------------------
Fatal error: Call to undefined function get_token() in /volume1/web/adm/member_list.php on line 7
---------------------
=======================================================
Fatal error: Call to undefined function check_token() in /volume1/web/adm/board_form_update.php on line 15
---------------------

해결방법은 lib/common.lib.php파일에 다음과 같은 함수를 추가로  해결 되었습니다
------------------------------------
제일 마지막에 수정 해결
===============
전: ?>
후:
-------------------------------------
function get_token()
{
    $token = md5(uniqid(rand(), true));
    set_session("ss_token", $token);

    return $token;
}
function check_token()
{
    $token = md5(uniqid(rand(), true));
    set_session("ss_token", $token);

    return $token;
}

?>
------------- 해결 완료 -----------
그누보드를 새로 설치후 문제점이 발생 되었습니다
밤새며 사용자 여러분의 리플 참조하여  해결사례를 공유드리며
그누보드 4.31.11    gnuboard4.tgz (1.8M) [2465] DATE : 2009-07-20 10:08:26  설치 하였습니다
1)문제점 : 게시판에 data 자료가  한글이 깨짐
          사용자 등록시 문제점(한글이 깨지는 문제로 ...금지어..등록 불가,,사용자 정보 글씨깨짐 발생
2)해결 : 동일 문제발생자 사례 내용
---------------- 짜근앤젤 08-10-04 12:07 --------------- 
오늘 4.30 다운받아서 설치해 봤는데 한글부분이 깨져나옵니다 utf8 버젼도 마찬가지고요
utf8 버젼도 마찬가지고요,,,,,4.22는 제데로 나오는데......
=======================================================
3) 해결정보
 -------------- 해피정 08-10-09 20:48------------------   
디비 커넥션부분이 변화되었군요...
디비서버의  언어셋을 점검하는 로직이 추가되었는데요.. 아마도 그것때문일수도 있습니다.
 아래 부분을 수정해보심...
(1) 관련 파일 : lib/common.lib.php
--- 변경전 ------
// DB 연결
function sql_connect($host, $user, $pass)
{
    global $g4;
    if (strtolower($g4['charset']) == 'utf-8') @mysql_query(" set names utf8 ");
    else if (strtolower($g4['charset']) == 'euc-kr') @mysql_query(" set names euckr ");
    return @mysql_connect($host, $user, $pass);
}
// DB 선택
function sql_select_db($db, $connect)
{
    global $g4;
    if (strtolower($g4['charset']) == 'utf-8') @mysql_query(" set names utf8 ");
    else if (strtolower($g4['charset']) == 'euc-kr') @mysql_query(" set names euckr ");
    return @mysql_select_db($db, $connect);
}
------- 변경후 ---------------
를 아래와 같이 변경하세요
function sql_connect($host, $user, $pass)
{
    return @mysql_connect($host, $user, $pass);
}
// DB 선택
function sql_select_db($db, $connect)
{
    return @mysql_select_db($db, $connect);
}
========================================
참고: http://happyjung.com/gnuboard/bbs/board.php?bo_table=lecture&wr_id=405
.....해피정 분이 리플내용 참조 재작성함.....
**** 해피정 분에게 감사드리며  앞서 해결내용을 상기와 같이 수정 리플 하오니 양해 부탁 드립니다.***
너무 감사히 잘 쓰고 있습니다.

basic스킨 게시판 공지글일때의 제목 굵게 표시해주는 부분

list.skin.php의 39번째 줄

.board_list .notice { font-weight:normal; } -> font-weight:bold; 로 고쳐주세요~ ^o^

설마 기본값이 normal인가요? 예전버전에는 굵게 표시 된 것 같아서;;;
비회원 읽기/쓰기/자동등록방지 사용 [ ] 표시 안됨개선방법 ....해피정님 리플감 사 드립니다
==============================================================================
하기 내용 수정후 : 1) 관리자 메뉴 > 환경설정 > 기본환경설정에서
/자동등록방지 사용 [] 표시되지 안보이는 것
/자동등록방지 사용 [v]  보이며 체크 설정 저장하면 비회원이 권한 1로 된 게시판을 읽을수 있습니다
=========================================================================
 해피정 08-10-09 20:52   
adm/config_form.php  내용중에서

    <td>복사, 이동시 로그</td>
    <td colspan=3><input type='checkbox' name='cf_use_copy_log' value='1' <?=$config[cf_use_copy_log]?'checked':'';?>> 남김
        <?=help("게시물 아래에 누구로 부터 복사, 이동됨 표시")?></td>
    <!-- <td>자동등록방지 사용</td>
    <td><input type='checkbox' name='cf_use_norobot' value='1' <?=$config[cf_use_norobot]?'checked':'';?>> 사용
        <?=help("자동 회원가입과 글쓰기를 방지")?></td> -->

를 아래와 같이 변경하면 간단히 해결됩니다.

    <td>복사, 이동시 로그</td>
    <td><input type='checkbox' name='cf_use_copy_log' value='1' <?=$config[cf_use_copy_log]?'checked':'';?>> 남김
        <?=help("게시물 아래에 누구로 부터 복사, 이동됨 표시")?></td>
    <td>자동등록방지 사용</td>
    <td><input type='checkbox' name='cf_use_norobot' value='1' <?=$config[cf_use_norobot]?'checked':'';?>> 사용
        <?=help("자동 회원가입과 글쓰기를 방지")?></td>
------------------------------------------------------
cheditor4 문제가 심각한데요..... 최신 버전인

http://www.chcode.com/cheditor/demo.shtml

이 게시판은 문제가 다 해결됐네요.

마우스 오른쪽 단추로 복사도 가능하고,.....

cheditor4 버전 업데이트만 눈빠지게 기다리고 있었고......

앞으로도 그럴 것이고.....

영원히....

그누보드가 아니면 다른 게시판은 사용할 생각도 없고......

영원한 짝사랑.....

잘 부탁 드립니다.

cheditor4 업데이트....

================================================================
소프트웨어 / CHEditor

정보현재 버전:4.3.6 (2009-08-17)
개발 언어:Javascript
브라우저:Internet Explorer, Firefox, Opera, Safari, Netscape Navigator, Google Chrome
적용 언어:C/C++, JSP, Perl, ASP, C#, PHP
관리자님 감사합니다.
그리고 심봉사님 감사합니다.
저두 utf-8 환경에서 정확한 버전을 설치했는데도 한글이 깨졌는데 알려주신 대로 해서 빨리 수정할 수 있었습니다.
PHP 버전 5.3.0에서 lib/common.lib.php 파일에서 세션변수 생성하는 부분 수정해주셔야 될겁니다.
session_register 앞에 @ 붙여줘야 오류 메시지가 안 나오더라구요.
아니면 PHP 버전 체크해서 5.3.0 이면 session_register 부분을 실행하지 않게 하는 방법도 괜찮을 것 같네요. ^^

===== 원본 (88번째 줄~94번째 줄)
// 세션변수 생성
function set_session($session_name, $value)
{
    session_register($session_name);
    // PHP 버전별 차이를 없애기 위한 방법
    $$session_name = $_SESSION["$session_name"] = $value;
}

===== 수정본
// 세션변수 생성
function set_session($session_name, $value)
{
    @session_register($session_name);
    // PHP 버전별 차이를 없애기 위한 방법
    $$session_name = $_SESSION["$session_name"] = $value;
}
버전정보를 보니까 히든패치가 있네요 ㅎㅎ

09.08.18 일자... adm/visit.list.php  66행을 아래처럼 변경

$title = str_replace(array("<", ">"), array("&lt;", "&gt;"), urldecode($row[vi_referer]));
현진님, 각각의 그누 패치파일중에 새로운 버전에서 바뀐 파일등을 다음과 같이 표시해주잖아요?

bbs/list.php
bbs/write.php

그러면 다운받아서 저거 두개의 파일만 압축풀어서 혹은 다 풀어서 두 파일만 서버에 다시 올려서 기존의 파일을 덮어씌어주심 됩니다. 그리고 나서 반드시 하셔야할게 히스토리 파일을 수정해주시는것인데, 이것은 그누 설치한 폴더에 HISTORY라는 이름의 확장자가 없는 문서가 있는데 이거 편집기로 열어보시면 패치내역을 기록하는 곳이에요, 여기게 패치한 내용을 기록해두시면 됩니다.

앞으로 비교하시면서 패치할수 있겠죠? 잘못되면 버전을 되돌릴수도있구요~
전체 220 |RSS
그누4 다운로드 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT