그누보드 5.2.9 & 5.2.9.2 취약점 패치 내용 분석

그누보드 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 설정이 켜져있어야한다.

5.2.9 취약점

해당 에디터를 통해 XSS 를 입력하여 게시글을 저장한다.

5.2.9 취약점

글작성을 완료한 후 게시글에 들어가면 XSS가 실행이 되지 않지만 글 수정화면에 들어가게 되면,

5.2.9 취약점

이와같이 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 패치포함)


잡소리..
패치가 나온 후 꾀 지나서 업로드 하게 된건
그냥 제가 게을러서입니다..또륵…

글의 문제가 있다면 댓글을 달아 주세요.

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.