※해당 포스트에 나온 취약점은 제가 찾은게 아닌 다른분이 제보한 취약점입니다.

 

[Github Link]
https://github.com/gnuboard/gnuboard5/commit/764cb349575e4a9d7d8e0bc43eaa918cfaed70e4

 

KVE-2019-0828 그누보드 XSS 취약점 수정 · gnuboard/gnuboard5@764cb34

Permalink Browse files KVE-2019-0828 그누보드 XSS 취약점 수정 Loading branch information... Showing 3 changed files with 5 additions and 0 deletions. +2 −0 adm/contentform.php +1 −0 adm/contentformupdate.php +2 −0 bbs/content.php @@ -104,6 +104,7 @@

 

 이 취약점은 그누보드 하단에 있는 '회사소개', '개인정보처리방침', '서비스이용약관' 등에서 발생하는 취약점입니다. 패치된 코드를 보시면 아시겠지만 크게 '작성'과 '조회'부분으로 나눌 수 있습니다. adm/contentform.php 와 adm/contentformupdate.php가 '작성'에 해당하는 부분이고 bbs/content.php가 '조회'에 해당하는 부분입니다.

 먼저 contentform.php 를 확인해보면 '태그 필터링 사용'에 해당하는 부분을 통으로 주석처리해서 날립니다. 이를 통해 글 작성시 태그 필터링 옵션 선택을 불가능하게 만들 수 있습니다. (아래 이미지 참고)

패치 전 남아 있는 태그 필터링 옵션

 contentformupdate.php 를 확인해보면 '태그 필터링 사용'에 대한 값을 담고 있는 co_tag_filter_use 변수에 삼항 연산자를 이용해 무조건 참을 넣어주는 것을 확인할 수 있습니다. 결국 내용 작성시 보안을 위해 '태그 필터링' 사용 희망 여부에 관계 없이 그냥 통으로 선택지를 날리고 강제로 '태그 필터링'을 해주는 패치입니다. 여기에 추가적인 안전장치를 하나 더 해주는데 그게 content.php 부분입니다.

 content.php는 관리자가 아닌 일반 유저들이 조회할때 사용되는 페이지입니다. 해당 페이지를 로드할때 강제로 co_tag_filter_use부분을 1로 변경해줍니다. 아마 필터링 사용 여부를 선택할 수 있는 부분을 날렸어도 파라미터 변조로 강제로 거짓(0)값을 넣어줄 경우를 대비해서 위의 코드를 추가해준게 아닌가 싶습니다. 결국 작성/조회시 강제로 '태그 필터링'을 사용하게 만드는 패치로 볼 수 있겠습니다.

 

 이를 직접 확인해보기 위해 관리자 계정으로 로그인해서 해당 내용을 작성할때 간단한 테스트용 스크립트를 이용해봤습니다.

'Web Hacking > Gnuboard 1-Day' 카테고리의 다른 글

[Gnuboard 1-Day] KVE 2019-0050  (0) 2019.10.28
[Gnuboard 1-Day] KVE-2019-1198  (0) 2019.10.27
[Gnuboard 1-Day] 환경 구축  (0) 2019.10.27

+ Recent posts