제로보드4의 보안 취약점에 대한 정보와 패치 자료들을 공유하는 곳입니다.
제로보드4로 사이트를 운영하시는 분들의 많은 관심과 정보 공유 부탁드립니다.
보안 관련 내용이 아닌 경우 삭제될 수 있습니다.
CSRF 라는 보안 취약점 공격 방법이 있습니다.
이 방법은 게시글등에 보안 취약 코드를 삽입하여 관리자가 그 글을 보거나 글의 링크를 클릭할때 발생할 수 있습니다.
즉 관리자로 로그인한 사용자가 그 사이트에서 행동하는 모든 활동은 관리자 권한을 가지게 되기 때문에 발생하는 보안 취약점입니다.
XpressEngine은 이런 CSRF 문제를 가능한 발생하지 않게 조치를 해 놓았지만 제로보드4는 현재 어떤 취약점이 발생할지 알 수 없는 상황입니다.
다행히 이런 CSRF 보안 취약점을 통해 제로보드4에서 임의의 사용자를 최고관리자로 바꿀 수 있는 문제를 공유 받아 패치 내용 공유드립니다.
문제 해결 방법은 ./admin/admin_exec_member.php 파일의 106 번째 줄에 다음과 같은 코드를 삽입함으로서 해결될 수 있을 것 같습니다.
if($_SERVER['REQUEST_METHOD']!='POST') die("비정상적인 접근이라 차단됩니다"); 즉 링크를 클릭해서 접근시 GET 방식으로 접근하기에 POST 방식에 대해서만 허락을 하면 될 것 같습니다.
수정한 해당 파일을 첨부해 놓겠습니다.
해당 파일의 소스 수정을 하지 않으신 분은 덮어쓰셔도 될 것 같습니다.
좋은 패치 감사드립니다.
하지만, 제 의견을 좀 보태보자면
이것도 자바스크립트 삽입 공격을 통한
XMLHttpRequest 나 플래시 등 프로그램의 POST 접속 방법으로 우회가 가능하리라 봅니다.
그래서.. 가장 최선의 해결책은..
제로보드4의 모든 php 파일에서 HTTP_REFERRER 을 체크하게 해 줌으로써 정상적인 레퍼러에서 온 요청이 아니라면
접근을 거부시키는 것도 CSRF HOLE 보안에 도움이 되리라 생각합니다.
(또, 인클루드 전용 PHP를 사용자가 직접 실행시키려 하는 경우도 체크하는게 좋겠죠.
아마, PHP 프로그램 자체의 오류 메시지로 인한 정보 유출이나, PHP Injection 등의 취약점에 도움이 될 겁니다.)
현존하는 많은 사이트들도 악성 HTML 태그 자체를 완벽하게 막기 위해 노력하는 것 보다는,
이 방법으로 보안을 하고 있는 것으로 알고 있습니다.

제로님~ 수고많으셨어요.
제로보드4 사용자들이 아직도 많고
저도 아직 제로보드4 사용하는데.
제로보드4 사용하는 분들 위해 그렇게 알려주시니
그 마음 너무나 고맙습니다~