그누보드 5.2.9 & 5.2.9.2 취약점 패치 내용 분석
해당 내용은 연구 목적으로 작성 되었으며,
악용시 발생하는 불이익에 대해서는 책임지지 않음을 알려드립니다.
GNU BOARD 5.2.9 & 5.2.9.2 보안 패치 내용[5.2.9]&[5.2.9.2]
주요 변경 내용
그누보드 글 수정 XSS 취약점
https://github.com/gnuboard/gnuboard5/commit/94f25f73fac224aa5c460306afd203558bde6322
최고관리자 정보수정 문제
https://github.com/gnuboard/gnuboard5/commit/e76f36a1be5f8b937815228f51c33bd15bda3b57
Stored XSS 취약점 수정
https://github.com/gnuboard/gnuboard5/commit/ad102421cb348d4aa286c0a75330c41e83ab3118
취약점 분석
취약점[1]
> 취약점 이름: 그누보드 글 수정 XSS 취약점
> 주요 변경 내용
추가/변경 파일: bbs/write.php
추가/변경 내용:
XSS 필터 추가
> 패치 내용
[ ... ] if ( $w == 'u' && (! $is_member || ! $is_admin || $write['mb_id'] !== $member['mb_id']) ){ // kisa 취약점 제보 xss 필터 적용 $content = get_text(html_purifier($write['wr_content']), 0); } [ ... ]
> 패치 분석
조건 1, 게시판 설정에서 DHTML에디터 설정이 되어있어야 한다.
위 코드 3번째 줄에 if문 조건속 $w == ‘u’,
즉 수정모드로 들어가게되면 html_purifier( … )함수를 통해 XSS 필터링한다.
>> 시연
해당 취약점은 DHTML 에디터 기능에서 터지는 취약점이므로 DHTML 설정이 켜져있어야한다.
해당 에디터를 통해 XSS 를 입력하여 게시글을 저장한다.
글작성을 완료한 후 게시글에 들어가면 XSS가 실행이 되지 않지만 글 수정화면에 들어가게 되면,
이와같이 XSS가 실행 됨을 볼 수 있다.
취약점[2]
> 취약점 이름: 최고관리자 정보수정 문제
> 주요 변경 내용
추가/변경 파일: adm/member_form_update.php
추가/변경 내용:
패치 내용 확인.
> 패치 내용
[ ... ] if ($is_admin !== 'super' && is_admin($mb['mb_id']) === 'super' ) { alert('최고관리자의 비밀번호를 수정할수 없습니다.'); } [ ... ]
> 패치 분석
상당히 까다로운 조건이 필요하다.
조건1, admin (super)계정 이외 회원관리 권한이 있는 계정
조건2, admin (super)계정이 해당 계정보다 level이 낮아야함
>> 시연
테스트용 계정에 회원관리 권한을 부여한다.
super계정(admin)이 해당 계정보다 권한 레벨이 낮게 설정한다. (DB에서 직접 수정하는 편이 편함.)
super계정(admin)의 비밀번호를 일반 계정이 변경할 수 있다.
취약점[3]
> 취약점 이름: Stored XSS 취약점 수정
> 주요 변경 내용
추가/변경 파일: bbs/qawrite.php
추가/변경 내용:
XSS 필터 추가
> 패치 내용
[ ... ] //$content = get_text($write['qa_content'], 0); // KISA 취약점 권고사항 Stored XSS $content = get_text(html_purifier($write['qa_content']), 0); [ ... ]
> 패치 분석
1:1문의 설정이 DHTML에디터 사용중이여야 한다.
$content 값을 html_purifier( … )함수로 XSS 필터링 처리해준다.
글 수정 취약점과 유사한 취약점으로 1:1에서 일어난다는 것 외에는 큰 차이가 없다.
>> 시연
1:1 문의 게시판이 DHTML을 사용하는지 확인한다.
HTML입력모드으로 XSS 코드를 삽입한다.
작성된 문서에서 수정을 누르게 되면,
XSS 코드가 실행되게 된다.
해당 내용에 대한 패치는 이미 이루어 졌으며
아래 링크를 통해 패치를 받으실 수 있습니다.
그누보드 5.2.9.2 패치(5.2.9 패치포함)
잡소리..
패치가 나온 후 꾀 지나서 업로드 하게 된건
그냥 제가 게을러서입니다..또륵…