티스토리 뷰

제로보드란 무엇인가



  제로보드



  제로보드( Zeroboard )는 고영수씨가 개발한 홈페이지용 전자 게시판( BBS ) 소프트웨어 또는 프레임 워크 이다. PHP 언어로

  쓰여졌고 1999년 말에 버전 1이 처음 배포되었고, 2001년 초에 버전 4가, 2002초에 버전 4.1가 발표 되었다. 

  이후 버그와 보안 취약점의 수정만 이루어지다가 2009년 9월 11일에 고영수씨는 더이상의 개발 및 유지를 포기하고 

  9월25일부로 배포를 중지했다. 


   【 제로보드의 눈부신 성과 】

  제로보드의 개발 당시 대한민국 인터넷에서는 CGI 기반의 스크립트와 게시판 호스팅 서비스가 사용되고 있엇으나, CGI

  방식의 한계점 때문에 PHP와 같은 서버 측 스크립트 언어를 사용한 게시판 프로그램에 대한 필요성이 대두되고 있었고

  실제로 비슷한 소프트웨어가 많이 개발, 출시되고 있었다. 특히 제로보드4는 자유로운 스킨 방식 및 회원관리 기능과 같은

  여러 특화된 기능을 제공해 상당한 사용자를 확보했고, 대한민국에서 PHP기반 BBS의 대명사가 될 정도로 성장했다.


   【 제로보드의 문제점 】

  ㆍ보안에 취약한 구조 - 최신 보안패치를 적용하지 않거나 퍼미션 설정을 잘못 해두면 외부에서 악성코드를 삽입 시키거나

     Injection을 발생 시킬 수 있다.

  ㆍ회원가입시 주민등록 번호를 통한 중복 가입 방지 기능이 내장되어 있어 개인정보 수집을 장려한다는 비판을 받았다.

     이 기능은 기본적으로 활정화되어 있지는 않지만, 제로보드4로 제작된 홈페이지들은 이 기능을 켜놓은 경우가 많았다.

     개인정보 수집법이 변경되면서 주민 번호 수집이 금지되자, 제로보드4 기반의 홈페이지들은 대부분 이 기능을 사용

     중지 시켰다.

  ㆍ개발 당시 웹 표준을 고려하지 않았기 대문에 인터넷 익스플로러 10 이상이나 타사 웹 브라우저에서는 스킨에 따라서

     레이아웃이 잘못 표시되고 일부 기능이 정상적으로 동작하지 않는다. 


   【 지금의 제로보드 】

  한국 웹 생태계를 이뤄낸 '제로보드' 게시판 툴을 개발한 고영수씨는 현재 NHN에서 개발자로 근무 중이시다. 제로보드4의

  개발 및 배포는 중지 되었지만 제로보드4의 문제점을 보안해서 XpressEngine을 개발하였다. 


  참조 - 위키피디아



  제로보드4를 통한 웹 보안취약점 살펴보고, 보안 취약점이 어떻게 발생하고, 접근하는지에 대해 알아보기 위해 제로보드를

  설치한다. 앞으로 소개될 보안 취약점은 현재 OWAPS TOP10(2017)과 밀접한 관련이 있으며, 이는 정보보안 전문가를 위한

  공부 과정으로 다음 취약점이 악용될 시 책임지지 않습니다.







  제로보드 설치하기


   【 제로보드 설치 환경 】

  ㆍlinux - CentOS-6.9-i386-minimal.iso


   【 제로보드 압축 파일 】 

  ㆍzboard.tar



   【 제로보드 압축 파일 업로드 】


 ↑ 제로보드 압축파일을 리눅스 홈 디렉토리로 업로드

   # WinSCP 이용

   # WinSCP 사용법 참고



   【 방화벽 해제 】


 ↑ 원활한 실습을 위해 selinux = disabled , 방화벽 해제

    # 설정을 변경 후 reboot을 해준다.


 ↑ 설정이 적용된 모습



   【 웹 서버 구축 】


 ↑ 아파치( apache ) 웹 서버 설치

   # httpd : Apache HTTP Server

   # http데몬(d) 이라고한다. ( 리눅스에서 서비스를 데몬이라고한다. 윈도우는 서비스 )

   # 이미 설치되어 있기 때문에 마지막에 위와 같은 문구가 뜬다. 처음이라면 정상적으로 complete!가 떠야한다.

   # 아파치 설정 : /etc/httpd/conf/httpd.conf


 ↑ 제로보드는 PHP기반이기 때문에 PHP설치가 필수

   # php : PHP scripting language for creating dynamic web sites

   # php 설정 : /etc/php.ini


 ↑ PHP를 Mysql databases에서 사용할 수 있도록 php-mysql 설치

   # php-mysql :  A module for PHP applications that use MySQL databases


 ↑ 제로보드는 DB연동을 하기 때문에 mysql databases도 설치 한다.

   # mysql :  MySQL client programs and shared libraries


 ↑ databases 서버도 설치

   # mysql-server : The MySQL server and related files



   【 설치한 서비스 가동  】


 ↑ 설치한 서비스를 가동한다.

   # service httpd start : httpd 서비스 가동

   # service mysqld start : mysql database 서비스 가동


 ↑ 웹 서버가 정상적으로 구축되었다면 리눅스 IP를 쳤을때 Apache test page가 나온다.

    # 위와 같은 화면이 나오지 않는다면 httpd 서비스가 가동 중인지 확인



   【 PHP 설정 변경 


 ↑ 제로보드 설치에 앞서 변경할 PHP 설정이 있다.

   # vi를 통해 /etc/php.ini를 열어 준다.


 ↑ 제로보드 접속시 계속되는 refresh 현상을 해경할 수 있다. 


 ↑ <?    ?> 형식의 PHP코드를 읽을 수 있다.


 ↑ 변경한 설정을 적용하기위해 httpd를 재시작 해준다.



   【 제로보드 압축 파일 이동 및 압축 해제 


 ↑ zboard.tar 파일을 document root 디렉터리로 이동


 ↑ tar압축 파일 압축 해제

   # /var/www/html/zboard 경로를 확인하자



   【 제로보드 설치 페이지 접속 



 ↑ 정상적으로 설치 완료!

   # 한글깨짐 현상 해결하기 (참고)

   # 게시판 생성 및 DB 설정은 다음 포스팅에 게시