[보안패치] 그누보드 4.33.10 정보
[보안패치] 그누보드 4.33.10첨부파일
본문
4.33.10 (11.04.27)
: [보안패치] 회원정보수정시 세션에 기록된 패스워드를 알아낼 수 있는 취약점이 발견되었습니다.
(한국인터넷진흥원을 통하여 Null@Root 소속의 Hacker@n 님께서 알려주셨습니다.)
: 게시판복사시 복사되는 게시판 테이블의 CHARSET 이 제대로 생성되지 않는 오류를 수정하였습니다.
( 밀로즈님께서 알려주셨습니다. )
bbs/register_form.php
// 패스워드를 알아볼 수 없도록 회원가입일시를 넣어서 암호화 함
set_session("ss_tmp_password", base64_encode($member[mb_datetime].$_POST[mb_password]));
bbs/register_form_update.php
// 복호화를 한 후 회원가입일시를 없애주면 원래 패스워드가 나옴
$tmp_password = preg_replace("/^".$member[mb_datetime]."/", "", base64_decode(get_session("ss_tmp_password")));
lib/common.lib.php
function get_table_define($table, $crlf="\n")
{
global $g4;
...
if (strtolower($g4['charset']) == "utf-8")
$schema_create .= $crlf . ') DEFAULT CHARSET=utf8';
else
$schema_create .= $crlf . ')';
: [보안패치] 회원정보수정시 세션에 기록된 패스워드를 알아낼 수 있는 취약점이 발견되었습니다.
(한국인터넷진흥원을 통하여 Null@Root 소속의 Hacker@n 님께서 알려주셨습니다.)
: 게시판복사시 복사되는 게시판 테이블의 CHARSET 이 제대로 생성되지 않는 오류를 수정하였습니다.
( 밀로즈님께서 알려주셨습니다. )
bbs/register_form.php
// 패스워드를 알아볼 수 없도록 회원가입일시를 넣어서 암호화 함
set_session("ss_tmp_password", base64_encode($member[mb_datetime].$_POST[mb_password]));
bbs/register_form_update.php
// 복호화를 한 후 회원가입일시를 없애주면 원래 패스워드가 나옴
$tmp_password = preg_replace("/^".$member[mb_datetime]."/", "", base64_decode(get_session("ss_tmp_password")));
lib/common.lib.php
function get_table_define($table, $crlf="\n")
{
global $g4;
...
if (strtolower($g4['charset']) == "utf-8")
$schema_create .= $crlf . ') DEFAULT CHARSET=utf8';
else
$schema_create .= $crlf . ')';
댓글 전체
아싸 ~ 일빠가 아니군요. ^^
기존유저는 어떻게 해야 하나요 해당파일을 붙어녛기 형식으로 해야 하나요?
알려주세요. 백업해놓고 해야하나...
알려주세요. 백업해놓고 해야하나...
백업하시고, 해당파일(bbs/register_form.php ,bbs/register_form_update.php ,lib/common.lib.php )
의 각각 해당 부분-
bbs/register_form.php
검색: set_session("ss_tmp_password", $_POST[mb_password]);
-->
// 패스워드를 알아볼 수 없도록 회원가입일시를 넣어서 암호화 함
set_session("ss_tmp_password", base64_encode($member[mb_datetime].$_POST[mb_password]));
로 변경
bbs/register_form_update.php
검색:
$tmp_password = get_session("ss_tmp_password");
--> // 복호화를 한 후 회원가입일시를 없애주면 원래 패스워드가 나옴
$tmp_password = preg_replace("/^".$member[mb_datetime]."/", "", base64_decode(get_session("ss_tmp_password")));
로 변경
lib/common.lib.php
검색:
} // end while
return $schema_create;
} // end of the 'PMA_getTableDef()' function
-->
} // end while
if (strtolower($g4['charset']) == "utf-8")
$schema_create .= $crlf . ') DEFAULT CHARSET=utf8';
else
$schema_create .= $crlf . ')';
return $schema_create;
} // end of the 'PMA_getTableDef()' function
로 변경
참고로
lib/common.lib.php 에서 변경된 부분이
다음 함수 부분인데
// PHPMyAdmin 참고
function get_table_define($table, $crlf="\n")
{
// For MySQL < 3.23.20
요 부분에
global $g4;
요걸 추가해서
// PHPMyAdmin 참고
function get_table_define($table, $crlf="\n")
{
global $g4;
// For MySQL < 3.23.20
요렇게 변경하셔야 합니다.. 그 내용은 빠진듯..
의 각각 해당 부분-
bbs/register_form.php
검색: set_session("ss_tmp_password", $_POST[mb_password]);
-->
// 패스워드를 알아볼 수 없도록 회원가입일시를 넣어서 암호화 함
set_session("ss_tmp_password", base64_encode($member[mb_datetime].$_POST[mb_password]));
로 변경
bbs/register_form_update.php
검색:
$tmp_password = get_session("ss_tmp_password");
--> // 복호화를 한 후 회원가입일시를 없애주면 원래 패스워드가 나옴
$tmp_password = preg_replace("/^".$member[mb_datetime]."/", "", base64_decode(get_session("ss_tmp_password")));
로 변경
lib/common.lib.php
검색:
} // end while
return $schema_create;
} // end of the 'PMA_getTableDef()' function
-->
} // end while
if (strtolower($g4['charset']) == "utf-8")
$schema_create .= $crlf . ') DEFAULT CHARSET=utf8';
else
$schema_create .= $crlf . ')';
return $schema_create;
} // end of the 'PMA_getTableDef()' function
로 변경
참고로
lib/common.lib.php 에서 변경된 부분이
다음 함수 부분인데
// PHPMyAdmin 참고
function get_table_define($table, $crlf="\n")
{
// For MySQL < 3.23.20
요 부분에
global $g4;
요걸 추가해서
// PHPMyAdmin 참고
function get_table_define($table, $crlf="\n")
{
global $g4;
// For MySQL < 3.23.20
요렇게 변경하셔야 합니다.. 그 내용은 빠진듯..
수정해 놓았습니다.
알려주셔서 감사합니다.
알려주셔서 감사합니다.
깔끔한 정리 고맙습니다~ 초보분들에게 큰 힘이 되어 주시는 군요~!^^
저는 두번째가 이렇게 되어있네요?
} // end while
$schema_create .= $crlf . ')';
return $schema_create;
} // end of the 'PMA_getTableDef()' function
} // end while
$schema_create .= $crlf . ')';
return $schema_create;
} // end of the 'PMA_getTableDef()' function
첫번째는
$tmp_password = $mb_password;
이렇게 되어있어요.
괜찮겠죠?
$tmp_password = $mb_password;
이렇게 되어있어요.
괜찮겠죠?
감사 합니다. 잘 쓰겠습니다.
감사합니다...^^
알려주신대로 코드덮어씌웠다가 오류나서 회원정보수정하고나면
하얀화면에서 스탑이네요ㅠ_ㅠ
하얀화면에서 스탑이네요ㅠ_ㅠ
$tmp_password = get_session("ss_tmp_password");
부분입니다.
$tmp_password = $mb_password; 부분이 아니에요..
부분입니다.
$tmp_password = $mb_password; 부분이 아니에요..
매번 항상 잘 사용합니다 ㅋ
감사합니다.
아~ 패치 따라가기 힘들어요 ㅎㅎ
아~ 패치 따라가기 힘들어요 ㅎㅎ
감사합니다.
감사합니다.
그런데, 모든 파일을 업로드 해야하는건가요?
제가 utf 랭귀지팩 버전으로 쓰고 있늗네, 이것을 덮어 씌워도 괜찮을까요??
그런데, 모든 파일을 업로드 해야하는건가요?
제가 utf 랭귀지팩 버전으로 쓰고 있늗네, 이것을 덮어 씌워도 괜찮을까요??
감사합니다.
보안버그 알려주신 화이트해커분 감사드리구요..
패치고생해주신 관리자님 감사합니다.
패치고생해주신 관리자님 감사합니다.
감사합니다.
감사합니다.
감사합니다. (__)
감사합니다..
감사합니다.