[긴급보안패치] 그누보드 4.33.00 > 그누4 다운로드

그누4 다운로드

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

[긴급보안패치] 그누보드 4.33.00 정보

[긴급보안패치] 그누보드 4.33.00

첨부파일

gnuboard4.tgz (1.8M) 937회 다운로드 2011-01-06 14:13:34
gnuboard4.utf8.tgz (1.9M) 449회 다운로드 2011-01-06 14:13:34

본문

4.33.00 (11.01.06)
    :  [보안패치] XSS / CSRF
        FLASH 파일의 ACTION SCRIPT로 관리자의 세션값을 알아내고 공유하여 결국에는 관리자권한을 모두 갖게 되는
        치명적인 오류가 발견 되었습니다. (간단하게 말해서 플래시를 보는것만으로 세션값이 노출됩니다.)
        이것은 해커가 관리권한을 공유하는 것으로 관리자의 패스워드가 노출된것은 아닙니다.
        패치의 주된 내용은 게시판의 다른 회원이 올린 embed 태그는 관리자에게 보여지지 않게 하는 것입니다.
        또한, 세션키가 공개되더라도 관리자 페이지에서 직접 로그인한 관리자인지를 이중으로 체크합니다.
        기본환경설정, 관리권한설정, 회원관리, 포인트관리에는 관리자 패스워드를 다시 물어서 관리권한을 완전히 넘겨주지 않도록 하였습니다.
        이것과 관련된 자세한 내용은 보안뉴스의 내용을 참고하십시오.
        http://www.boannews.com/media/view.asp?idx=24280&kind=1
        (i2Sec 교육팀 강성호님께서 알려주신 내용입니다.)

        아래 패치를 모두 적용하기 힘든 사이트는 중요라고 되어 있는 파일만 수정해 주시기 바랍니다.

        === 중요 ===
        lib/common.lib.php
            의 bad_tag_convert(), view_file_link() 함수 코드 수정
        skin/board/basic/view_comment.skin.php
            의 $str = preg_replace("/\[\<a\s.*href\=\"(http|https|ftp)\:\/\/([^[:space:]]+)\.(swf)\".*\<\/a\>\]/i", "<script>doc_write(flash_movie('$1://$2.$3'));</script>", $str);
            위 코드 제거 또는 주석처리
        bbs/login_check.php
            에 ss_mb_key 세션키 추가
        adm/admin.lib.php
            에서 ss_mb_key 비교
        === /중요 ===

        adm/config_form.php
        adm/config_form_update.php
        adm/auth_list.php
        adm/auth_update.php
        adm/member_form.php
        adm/member_form_update.php
        adm/point_list.php
        adm/point_update.php

댓글 전체

$str = preg_replace("/\[\<a\s.*href\=\"(http|https|ftp)\:\/\/([^[:space:]]+)\.(swf)\".*\<\/a\>\]/i", "<script>doc_write(flash_movie('$1://$2.$3'));</script>", $str);

bbs/view_comment.php 가 아니라
lib/common.lib.php 에 있습니다
lib/common.lib.php 의

view_file_link() 함수에서

    else if (preg_match("/\.($config[cf_flash_extension])$/i", $file))
        //return "<embed src='$g4[path]/data/file/$board[bo_table]/$file' $attr></embed>";
        return "<script>doc_write(flash_movie('$g4[path]/data/file/$board[bo_table]/$file', '_g4_{$ids}', '$width', '$height', 'transparent'));</script>";

이 코드를 삭제하시거나 주석 처리하시기 바랍니다.
감사합니다. 이번 패치의 핵심내용인

[패치의 주된 내용은 게시판의 다른 회원이 올린 embed 태그는 관리자에게 보여지지 않게 하는 것입니다.]

라고 되어 있는데 저부분이 문제가 된다면 타 회원의 권한을 가로 챌수도 있다는것이 되는건가요?
만약 그럴경우 부운영자 관리권한등에서도 문제가 된다는뜻 같아 보이는데요.
안녕하세요. 유창화입니다.

이번의 보안 이슈에 대해 제 생각을 적어봅니다.

일단 관리자가 플래시를 보는 것을 제한하는 것은 완전한 해결책이 아니라고 보여집니다.

다른사람의 권한은 가질수 잇으니까요.

따라서 다음과 같이 변경하면 어떨까 적어봅니다.

관리자 페이지 접근 권한 체크를 이중으로 햇으면 합니다.

즉 관리자 페이지로 들어올때 최초에 특정세션값을 체크하여 없다면 비밀번호를 입력하게 하여 새로운 세션을 굽습니다.

그리고 관리자가 아닌 페이지에선 선처리로 관리자용 세션을 무조건 지웁니다.

그다음 일반 회원이나 관리자나 공통사항인데

게시판이나 이런곳에서 수정삭제할때는 비밀번호를 입력하도록 처리 하는 것입니다.

이번 보안 이슈는 플레시를 통해 세션을 알게 되는 것이므로

비밀번호를 알지는 못합니다.

즉 관리자 페이지를 제외한 곳에서는 입력, 수정, 삭제시 자신의 비밀번호를 매번 적도록 하는 것입니다.

관리자 페이지에선 이중 세션으로 관리하구요.

이렇게 하면 굳이 플래시를 막거나

다른 회원의 권한이 뺏기는 경우가 없을 것 같습니다.

관련 의견들 부탁드립니다.
관리자 페이지 접근 ip를 제한하는게 좋지 않을까 합니다.
관리자페이지에서 허용 ip를 변경할때만 패스워드를 2중화 하면 되지 않을까요?
그리고, 이건 그누보드 뿐만 아니라, 제로보드도 마찬가지일거 같은데,
제로보드는 패치가 중단되었으니, 문제가 더 심각하겠군요.
아직 제로보드로 운영하는 사이트가 많은데...
(관리자님 본문글에서 XSS 방법은 그냥 삭제하시는게 좋을것 같습니다.)
XSS 방법에 대한것은 패치를 왜 해야 하는지에 대해 알려드리려 내용을 최소화하여 적었습니다.
이것은 그누보드에 국한된것은 아닙니다.
ㅎ....그렇죠???....
조용히 알려준후 패치끝난즈음해서 뉴스화해도 되지 않았을지....
이거 운영하는분들은 허겁지겁....허둥지둥.....해야하니...원...ㅎㅎ
중요라고 되어 있는 파일만 수정하던지
아니면 
아래 파일만 교체해도 되는건가요??

        ---  아래 ---
        adm/config_form.php
        adm/config_form_update.php
        adm/auth_list.php
        adm/auth_update.php
        adm/member_form.php
        adm/member_form_update.php
        adm/point_list.php
        adm/point_update.php
제 홈페이지에 패치하고
게시판에 글 제대로 작성되나 테스트 해봤는데...

제 메일로 아래와 같은 메일이 오네요.
======================================================================
<<XSS 공격 알림>>

000.000.000.000(제 아이피)아이피로 XSS 공격이 있었습니다.
관리자 권한을 탈취하려는 접근이므로 주의하시기 바랍니다.
해당 아이피는 차단하시고 의심되는 게시물이 있는지 확인하시기 바랍니다.
=======================================================================

테스트는 여러번 해봤는데 메일은 한버만 왔습니다.
관리자로 로그인을 한 상태에서 패치를 진행하였다면 최초에 1번은 그렇게 되어야만 정상입니다.
이번 패치에서 추가된 2중 세션이 아직 생성한게 없기때문에 관리모드에 들어가는순간 공격으로 간주하는겁니다.^^
물론 긴급 패치라 그런것이겠지만

관리자가

회원이 embed 한 플래시를

아예 볼 수 없다는 것은 넌센스가 아닐수 없습니다..
(비방이 절대 아닙니다.. 지금 관리를 하다보니 허탈해서 그렇습니다 ㅠ.ㅠ)

어서 빨리 해결책이 나왔으면 좋겠습니다 ㅠ.ㅠ
관리자가 직접 작성한 글의 embed된 플래시는 보여지는 것 같은데..혹시 문제가 있진 않을까요? 관리자 권한이라면, 글을 쓸수도 있을텐데..
좀 번거럽더라도 모든 form들에 특정토큰을 사용해 체크하는건 어떨까요? 예를들어서 유저가 form을 볼때마다 임의의 랜덤한 토큰을 생성하고 유저가 form을 submit 할때 해당 토큰값을 체크하는 식으로... 예를 들어

<?
session_start();
$token = md5(microtime() . mt_rand(0, 1000) . mt_rand(0, 1000) . mt_rand(0, 1000));
$_SESSION['token'] = $token;
?>
<form action="form.php" method="post">
<input type="hidden" name="token" value="<? echo $token; ?>" />
</form>

하고 update.php 에서

<?
if ($_POST['token'] != $_SESSION['token']) {
die('잘못된 토큰값');
}
?>

뭐 대충 이런식으로 말이죠. 임시적인 토큰값은 DB에다 생성하면 더 좋고요.
하악....
술도 안깼는데 관련글을 보니 머리가 지끈하군요.
패치 생각하니 두배로 아프네요.
이러허언!!.. 영카트로 작업한 곳들도 패치를 해야 하는군요!!.. 우힝... ㅡ,.ㅜ 훌쩍.. 콧물찍 눈물찍..
곧 서버도 구매할건데 보안 공부가 많이 허접해서 걱정이 큽니다.
어쨌건 긴급 패치 감사합니다. 다음 패치도 기대해야겠군요.
그누보드 항상 감사♥하며 사랑♡합니다.
회원가입하니깐 그런페이지 없다고.....그러고선 홈으로가니 로그인되어 있넹. 헐~~
그리고, 업데이트 때문인지는 몰라도 관리자 권한에 문제가 있어요.
게시판 관리에서 수정이 안된다는....ㅠㅠ
나만 그런감?
이 버그는 로그인한 ip만 비교하면 해결되는거 아닌가요?

세션키가 노출되어 인증세션을 빼앗기더라도 ip가 같을 확률은 매우 낮습니다.

로그인시에 ip를 담아뒀다가 비교하면 될텐데요.

인증된 세션에 처음 로그인한 ip를 담고있다가 common.php에서 매번 접속ip와 비교해서 다르면 인증세션키를 삭제하면 해결될 것 같은데..

저는 이미 오래전부터 아래처럼 그누보드를 수정해서 사용하고있는데 문제점을 발견하지 못했습니다. 다른 문제가 있을까요?

if(!isset($_SESSION['login_ip']) || $_SESSION['loign_ip'] != $_SERVER['REMOTE_ADDR']) {
    session_unset();
    session_destroy();
  $is_member = false;
  $is_admin = false;
  $is_guest = true;
}
전체 220 |RSS
그누4 다운로드 내용 검색

회원로그인

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