리자

[보안패치] 그누보드 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 . ')';

첨부파일

gnuboard4.euckr.tgz (1.9 MB) 305회 2011-04-27 22:37
gnuboard4.utf8.tgz (1.9 MB) 187회 2011-04-27 22:37
|

댓글 22개

아싸 ~ 일빠가 아니군요. ^^
기존유저는 어떻게 해야 하나요 해당파일을 붙어녛기 형식으로 해야 하나요?
알려주세요. 백업해놓고 해야하나...
백업하시고, 해당파일(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

요렇게 변경하셔야 합니다.. 그 내용은 빠진듯..
수정해 놓았습니다.
알려주셔서 감사합니다.
깔끔한 정리 고맙습니다~ 초보분들에게 큰 힘이 되어 주시는 군요~!^^
저는 두번째가 이렇게 되어있네요?

} // end while

$schema_create .= $crlf . ')';

return $schema_create;
} // end of the 'PMA_getTableDef()' function
첫번째는
$tmp_password = $mb_password;
이렇게 되어있어요.
괜찮겠죠?
감사 합니다. 잘 쓰겠습니다.
감사합니다...^^
알려주신대로 코드덮어씌웠다가 오류나서 회원정보수정하고나면
하얀화면에서 스탑이네요ㅠ_ㅠ
$tmp_password = get_session("ss_tmp_password");
부분입니다.
$tmp_password = $mb_password; 부분이 아니에요..
매번 항상 잘 사용합니다 ㅋ
감사합니다.
아~ 패치 따라가기 힘들어요 ㅎㅎ
감사합니다.
감사합니다.

그런데, 모든 파일을 업로드 해야하는건가요?

제가 utf 랭귀지팩 버전으로 쓰고 있늗네, 이것을 덮어 씌워도 괜찮을까요??
감사합니다.
보안버그 알려주신 화이트해커분 감사드리구요..
패치고생해주신 관리자님 감사합니다.
감사합니다.
감사합니다.
감사합니다. (__)
감사합니다..
감사합니다.
댓글을 작성하시려면 로그인이 필요합니다. 로그인

그누4 다운로드

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

+
제목 글쓴이 날짜 조회
14년 전 조회 1.3만
14년 전 조회 1.5만
14년 전 조회 1.1만
14년 전 조회 1.9만
14년 전 조회 1.5만
14년 전 조회 9,459
14년 전 조회 9,949
14년 전 조회 2만
14년 전 조회 9,270
14년 전 조회 8,172
14년 전 조회 4.5만
14년 전 조회 1.4만
14년 전 조회 1.2만
14년 전 조회 1.8만
14년 전 조회 1만
14년 전 조회 1.3만
14년 전 조회 1.2만
14년 전 조회 1.7만
15년 전 조회 1.3만
15년 전 조회 2.1만
🐛 버그신고