리자

[보안패치] 그누보드 4.34.16

2011년 12월 5일 이전에 euc-kr 버전을 다운로드 받으신 회원님들중 게시판 생성이 제대로 되지 않는 경우가 발생하였을수 있습니다.
프로그램을 새로 다운로드 받으신후 다시 업로드하여 주십시오.
테이블 생성 SQL 코드에 charset 에 utf-8 이 지정되어 있던것을 수정하여 다시 올려 놓았습니다.
불편을 드려 죄송합니다.

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

4.34.16 (11.11.15)
: [보안패치] XSS 취약점 권고에 대한 수정 (i2Sec-김태형님)

lib/common.lib.php 의 function conv_content() 에서

$content = preg_replace("#\/\*.*\*\/#iU", "", $content);

이 코드의 위치를 바꿔 해결함



// 이런 경우를 방지함 <IMG STYLE="xss:expr/*XSS*/ession(alert('XSS'))">
$content = preg_replace("#\/\*.*\*\/#iU", "", $content);

$content = preg_replace("/(on)([a-z]+)([^a-z]*)(\=)/i", "&#111;&#110;$2$3$4", $content);
$content = preg_replace("/(dy)(nsrc)/i", "&#100;&#121;$2", $content);
$content = preg_replace("/(lo)(wsrc)/i", "&#108;&#111;$2", $content);
$content = preg_replace("/(sc)(ript)/i", "&#115;&#99;$2", $content);
//$content = preg_replace("/(ex)(pression)/i", "e&#120;$2", $content);
$content = preg_replace("/\<(\w|\s|\?)*(xml)/i", "", $content);

// 이미지 태그의 src 속성에 삭제등의 링크가 있는 경우 게시물을 확인하는 것만으로도 데이터의 위변조가 가능하므로 이것을 막음
$content = preg_replace("/<(img[^>]+delete\.php[^>]+bo_table[^>]+)/i", "*** CSRF 감지 : &lt;$1", $content);
$content = preg_replace("/<(img[^>]+delete_comment\.php[^>]+bo_table[^>]+)/i", "*** CSRF 감지 : &lt;$1", $content);
$content = preg_replace("/<(img[^>]+logout\.php[^>]+)/i", "*** CSRF 감지 : &lt;$1", $content);
$content = preg_replace("/<(img[^>]+download\.php[^>]+bo_table[^>]+)/i", "*** CSRF 감지 : &lt;$1", $content);

첨부파일

gnuboard4.euckr.tgz (2.6 MB) 2292회 2011-12-05 19:40
gnuboard4.utf8.tgz (2.7 MB) 2348회 2011-12-05 19:40
|

댓글 57개

어헉~ 고생하셨습니다.
감사합니다~ 간만에 순위권... ^^;;
감사합니다.
감사합니다.
감사합니다
영어로땡큐
감사합니다.
감사합니다.아리가또
또.. 업데이트가 되었군요. 리자님 수고하셨습니다.
중국어 쎼쎼
수고 많으셨습니다.
감사합니다.
수고하셨습니다.
감사합니다.
감사합니다~!
감사 합니다.
감사합니다.
감사합니다. ^^
감사합니다. 고생하셨습니다.
고맙습니다
감사합니다.
변경내역을 /lib/common.lib.php에 적으면 되는건가요 ~?
적는게 맞다면 최하단쪽에 적는지요 ..?
알려주세요 ㅠ!!
추가로 하단에 넣는게 아니라 기존의 내용을 위치만 옮기는거에요..
function conv_content << 이 문장으로 검색을 하셔서 해당함수로 가시구요,
그 함수 내에 아래의 내용이 있는 곳으로 내려가보세요. (4.34.15버전기준 477~478라인)

// 이런 경우를 방지함 <IMG STYLE="xss:expr/*XSS*/ession(alert('XSS'))">
$content = preg_replace("#\/\*.*\*\/#iU", "", $content);

이제 이 내용을 블럭지정하셔서 잘라내기 하시고,
다시 13줄정도 조금 올라가셔서 아래 문장을 찾으시고(4.34.15버전기준 464라인) 그 위에 잘라낸 문장을 붙여넣으시면 됩니다.

$content = preg_replace("/(on)([a-z]+)([^a-z]*)(\=)/i", "&#111;&#110;$2$3$4", $content);

그럼 아래와 같은 모양이 되겠죠. 라인사이의 공백라인은 없어도 상관없습니다..

.......
//$content = preg_replace("/(on)([^\=]+)/i", "&#111;&#110;$2", $content);

// 이런 경우를 방지함 <IMG STYLE="xss:expr/*XSS*/ession(alert('XSS'))">
$content = preg_replace("#\/\*.*\*\/#iU", "", $content);

$content = preg_replace("/(on)([a-z]+)([^a-z]*)(\=)/i", "&#111;&#110;$2$3$4", $content);
.......

여기서 .......은 위아래 내용이 주욱 이어진다~ 뭐 이런 의미입니다.. 혹시나 하는 노파심에..;;
상세하고 친절한 답변 완전 감사합니다 ㅠㅠ
감사합니다.
고생하셨습니다.
감사합니다. ^^
감사합니다..ㅎㅎ
수고 하셨습니다.
감사합니다. ㅎㅎ
감사합니다.
감사합니다.
감사합니다..
저 모르는 사이에 나왔네요ㅋ
고생하셨습니다. 감사합니다.
감사 이걸 왜 이제 봤지..
언제나 감사 합니다.
감사합니다.
뉴질랜드에서~~
보안패치 될때마다 느끼는건데
보안관련부분은 따로 common.lib.php 에 넣지 말고 따로 security_include.php 이런 식으로
외부로 뺀뒤에 common.lib.php 에서 security_include.php 파일을 인클루트 하게 하면
어떨까요?
그러면 보안쪽 업데이트가 필요하다면 security_include.php 만 수정해주면 되므로
common.lib.php를 손댔던 사람/업체등에서도 손쉽게 업데이트 할 수 있을거라 생각합니다
^_^ 의견이니 검토 부탁할께요 ^^
보안부분은 끊이 없넹..감사
고맙게 잘사용하겠습니다
감사합니다. 사랑합니다.
아 적용해야 겠네요....^ ^
감사합니다.
그누짱~~~
감사합니다. 연말 잘 보내세요
그누짱!!! 언제 한번 뵈요
감사합니다.
감사합니다.
댓글을 작성하시려면 로그인이 필요합니다. 로그인

그누4 다운로드

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

+
제목 글쓴이 날짜 조회
13년 전 조회 1.7만
13년 전 조회 8,417
13년 전 조회 1.5만
13년 전 조회 1.8만
13년 전 조회 1.4만
14년 전 조회 2.2만
14년 전 조회 1.2만
14년 전 조회 2.5만
14년 전 조회 1.2만
14년 전 조회 1.7만
14년 전 조회 1.5만
14년 전 조회 1.4만
14년 전 조회 8,090
14년 전 조회 1.6만
14년 전 조회 7,700
14년 전 조회 2.1만
14년 전 조회 1.3만
14년 전 조회 1.2만
14년 전 조회 1.3만
14년 전 조회 1.5만
🐛 버그신고