리자

[보안패치] 그누보드 4.33.08 (2011년 3월 11일자 우편번호 추가)

4월 4일 오후 4시 이후로 2011년 3월 11일자 우편번호가 업데이트 되었습니다.
기존에 패치하신 분들은 압축을 해제하신 후 bbs/zip.db 만 교체하여 주십시오.

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

4월 2일 오전 12시 이후로 패치가 수정 되었습니다.
관리자 패스워드를 입력하는 방식으로 바뀌었습니다.
adm/board_form.php
adm/board_form_update.php
이 두개의 파일이 변경 되었습니다.


4.33.08 (11.04.01)
: 아래 두개의 취약점은 한국인터넷진흥원(KISA)을 통하여
선린인터넷고등학교 1학년에 재학중인 강인욱님께서 알려 주셨습니다.
: [보안패치] XSS(Cross Site Scripting) 취약점 보완
이 취약점은 XML의 namespace를 이용하여 공격하는 방식입니다.
게시판에서 DHTML 에디터를 사용하지 않는 경우에만 취약한 것으로 확인 되었습니다.
: [보안패치] RFI(Remote File Inclusion) 원격파일유입 취약점 보완
이 취약점은 관리자 권한을 취득한 후에 게시판 관리의 상단, 하단파일경로에
Data URI scheme (http://en.wikipedia.org/wiki/Data_URI_scheme) 를 이용하여
서버에 remote 파일을 생성하고 해당 remote 파일을 이용하여 해당 서버를 공격하는
방식입니다.
PHP 5.x 이상 그리고 allow_url_fopen 이 On 인 경우에만 발생합니다.

lib/common.lib.php

$content = preg_replace("/\<(\w|\s|\?)*(xml)/i", "", $content);

adm/board_form.php

<tr class='ht'>
<td colspan='2'>
관리자 패스워드
</td>
<td>
<input class='ed' type='password' name='admin_password' itemname="관리자 패스워드" required>
<?=help("관리자 권한을 빼앗길 것에 대비하여 로그인한 관리자의 패스워드를 한번 더 묻는것 입니다.");?>
</td>
</tr>

adm/board_form_update.php

if ($member[mb_password] != sql_password($_POST['admin_password'])) {
alert("패스워드가 다릅니다.");
}

첨부파일

gnuboard4.euckr.tgz (1.8 MB) 1724회 2011-04-04 16:02
gnuboard4.utf8.tgz (1.9 MB) 1134회 2011-04-04 16:02
|

댓글 37개

수고하셨습니다.. (__)ㅋ
뻥쟁이~~~
감사합니다. 얼릉 패치^^
저기 위의 설명에 나온 두개의 파일만 바꾸면 패치 되는 건가요?
감사합니다. 수고하셨습니다. 또오세요.
고맙습니다. 수고하셨네요.
감사합니다 보안패치 적용해야겠네요
감사합니다.
안녕하세요 보안 취약점을 발표한 강인욱이라고 합니다.
긴히 드릴 말씀이 있습니다.
RFI에서 data:;base64,인코딩값 말고도 data:image/gif;base64,인코딩값
이게 된다는것도 염두해두셨어야합니다.
저는 관리자 비밀번호를 체크하면 어차피 안막아도 해커가 뚫을 수 없을거라 생각해서
보고서 작성시 안적었었습니다. 사용자 편의를 위해서 저렇게 하신거 같은데요. ㅎ

data:image/gif; image/gif 뿐만 아니라 세미콜론과 콜론 사이에 MIME TYPE이 들어가도 RFI가 작동을 하니 다시 필터링 부분을 재수정하여 배포하셨으면 좋겠습니다.

번거롭게해서 죄송합니다...ㅠㅠㅠㅠ... 보고서 작성시 적을껄 그랬네요...ㅠㅠ
안녕하세요? 취약점을 알려주셔서 감사합니다.
위의 코드로 인코딩된 값을 무력화 시킬 수 있다고 판단되어 관리자 패스워드 루틴을 뺀것입니다. 일단 관리자 권한을 뺐기면 이 부분 말고도 좀 더 많은(?) 취약점이 있을 수 있다 판단됩니다. 사실 관리자 패스워드를 매번 입력하는게 저도 번거롭네요. ㅜㅜ
패치내용에 개인이력과 관련하여 더 추가하시고자 한다면 메일 주십시오. kagla@naver.com
감사합니다.
수고 많으셨습니다....^^
감사합니다.
감사합니다.
감사합니다..
그그 관리자 권한에서의 취약점이 중요한 이유는

저번에 I2SEC에서 발표했듯이 XSS와CSRF가 있었자나영 ㅋㅋ

CSRF는 포인트 수정 회원정보 수정등이 있었는데요(뭐 권한으로 글쓰기나 그런것도 되겠죠ㅎ^^)

모두 관리자 권한에서였습니다.

XSS는 완벽 방어가 힘들기 떄문에 관리자 권한이 따이고 나서

제가 알려드린 RFI 취약점으로 공격을 하게 되면 데이터베이스 아이디, 비밀번호에

접속해서 포인트 수정은 물론, 관리자 패스워드까지 볼수 있습니다.(패스워드는 암호화 되있을테죠 ㅎ)

큰 쇼핑몰의 경우에는 포인트 수정은 매우 중요한 사항이라

제가 알려드린 XSS 취약점으로 관리자 권한을 딴뒤

RFI로 공격을해서 db아이디와 비밀번호를 알아낸후

포인트 수정을해서 구매를 하게 되면 엄청난 사태가 벌어지죠;;

그래서 권리자권한에서의 취약점도 중요하다는 거였습니다 ㅎㅎ

ps. 제생각으로는 강성호씨가 발표한것 보다 더 위험한 취약점 같습니다 ㅎ;;
메일로 따로 보내드렸습니다.
그럼 수고 하세요 !!
패치 감사합니다.
하지만 패치 후 게시판 설정에서 저장시 상단파일경로와 하단파일경로에서 슬래시가 사라지게 되어 있는데요. 제 설정에는 ../head.php, ../tail.php로 되어 있는데요.
저장하면 ..head.php, ..tail.php로 변경되어 게시판에 상단/하단 아무것도 안보이게 되네요.
이부분도 각각 _head.php와 _tail.php로 일일히 수정해야 하는지요?!
해당 부분의 코드에 문제가 있어 다시 수정해서 올려 놓았습니다.
항상 감사드립니다.
감사 합니다.
감사합니다.
감사합니다. ^^
수고많으십니다
항상 감사드립니다.
잘 스겠습니다
sql_gnuboard4.sql 파일에 보면 새로운 테이블을 생성하도록 되어 있는거 같은데..

[추가내용]

CREATE TABLE `$g4[token_table]` (
`to_token` varchar(32) NOT NULL default '',
`to_datetime` datetime NOT NULL default '0000-00-00 00:00:00',
`to_ip` varchar(255) NOT NULL default '',
PRIMARY KEY (`to_token`),
KEY `to_datetime` (`to_datetime`),
KEY `to_ip` (`to_ip`)
);


현재 4.33.02 버젼입니다.
이 버젼으로 덮어씌우는경우, 위 테이블을 어떻게 추가해야 합니까??
예전에는 업그레이드 파일로 db쪽을 갱신할수 있었던거 같은데
변경된 파일을 비교해보니 그런 부분이 보이지를 않네요..???

아니면 설치를 하지 않아도 상관이 없는지요???? .. 좀 알려주세요

업데이트를 매번 따라갈수가 없어서 중간에 한번씩 건너뛰어서 하는데
할때마다 머리가 좀 아프네요 -_- ;;
댓글에 답글을 달려니 kcaptcha_image 가 보이지 않네요?
감사합니다. 업데이트 정말 따라가기 힘듭니다. ㅎㅎㅎ
감사합니다
감사합니다.
감사합니다.
감사합니다.
댓글을 작성하시려면 로그인이 필요합니다. 로그인

그누4 다운로드

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

+
제목 글쓴이 날짜 조회
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만
15년 전 조회 1.2만
15년 전 조회 1.1만
🐛 버그신고