티스토리 뷰
게시판 설치
게시판은 제로보드를 사용해 실습을 진행해보도록 하자.
제로보드
- PHP로 작성된 공개게시판이고 , 무료였다.
- 개발자가 NHN으로 넘어가면서 XE라는 새로운 웹 플랫폼을 만들었다.
- 한때 엄청난 인기를 끌던 게시판 플랫폼. 요즘의 '워드프레스'와 비슷한형태의 툴이라 보면 된다.
- 보안상의 문제로 현재는 제로보드 사용을 권장하지않는 추세이지만, 그렇더라도 여러 측면에서 잘 만들어진 툴이다.
- 그 XE는 제로보드를 만들면서 있었던 보안이슈를 설계시부터 고려해서 만들었다고 하나,
제로보드만큼의 인기를 끌고있지는 못하는듯 하다.
따라서 우리는 취약점 분석이 목적이기때문에 제로보드를 이용하여 분석을 해보도록 하자.
구버전의 제로보드를 다운받아 리눅스에 설치하도록 하자.
# 위에 첨부된 파일을 해당 경로로 이동한 뒤 드래그 앤 드롭으로 위치시켰다.
# 원본파일의 해시값이다. 제대로 전송되었는지 확인해보도록 하자.
#> tar xvf zboard.tar 로 압축을 풀어주도록 하자.
여기까지 진행한다음 우선 내 아이피주소에 접속하여 zboard 페이지를 확인해보자.
물론 httpd 와 mysqld를 활성화 시켜주고 진행해야한다.
# install.php에 접속해보면 문제점들이 발생한다.
우선 php 구문법을 이용해 작성된 파일이므로 현재 http에서는 저당시의 php문법을 읽어들일수 없어
echo문 include문이 그대로 노출되고있다.
또한 인코딩문제때문에 한글이 깨지고있다.
먼저 간단한 인코딩문제부터 해결해보자.
# 크롬 사용자는 해당파일을 깔아 인코딩문제를 해결하자
# 설치 후 페이지 우클릭 → Korean(EUC-KR) 로 변경해준다.
# chmod 707 . 명령으로 zboard 폴더의 퍼미션 설정을 조정해주자.
그다음 php의 문법오류 등을 바로잡기위해 설정을 변경해 줄 차례이다.
#> vi /etc/php.ini 경로로 이동하여 설정을 변경해주자.
1). <? ?> 이 표시 문제를 해결하려면
- short_open_tag = on
2). 무한 새로고침
- register_globals 설정 On(일반변수도 슈퍼글로벌로 바꿔주는 역할)
# 화면이 잘 나오게 된다.
설치시작을 눌러 진행하고싶지만, 내부 코드의 문제로 로그인이 되지 않는다.
버전이 맞지 않기때문에 생성에 실패하는것이다.
3). 로그인문제 : 배열의 실제 디폴트 크기가 달라 생기는 문제가 있다.
- register_long_arrays 라는 설정을 통해 해결가능
# 아까 확인했던 register_globals 와 register_long_arrays 둘다 On으로 설정해줘야 한다.
그다음 제로보드 내부 파일 중 vi schema.sql 파일을 수정해주자.
이 파일은 함수 덩어리인데,
create table 과 같이 테이블을 만들어주거나 여러 DB쪽 명령어를 포함하고있다.
테이블을 만들떄 버전이 안맞아서 생기는 문제가 두가지가 있다.
첫번째는 패스워드 필드의 크기
두번째는 문법이 안맞는 점
# 여기서도 패스워드를 md5방식으로 저장하고있는데, 20바이트로는 해시된 패스워드를 다 담을수가 없다.
이것을 모두 50바이트로 크기를 변경시켜주자.
#)_ 참고
:/password → [엔터] → 원하는 값 변경 후 다시 명령모드로 빠져나가서 n을 눌러서 다음으로 이동 하며 빠르게 변경 가능하다.
그다음 primary key 속성이 있는 모든 값을 다 찾아줘야한다.
# primary key 와 default 속성은 공존할 수 없다. 따라서 default '0'까지를 다 지워줘야한다.
앞에 붙어있는 unsigned 와 같은 내용도 지워줘야한다.
그다음 DB에 zboard 용 데이터베이스를 생성해주자
그 다음 페이지로 돌아가서 정보 입력 후 설정완료를 눌러주자.
# 설정완료 눌러주면
# 관리자 모드가 뜨는건 제로보드의 관리자를 입력하는거다.
여기서는 편의상 admin / 1234 / admin 으로 가입하겠다.
# 여기가 관리자페이지이다. 로그인을 하고 접속해주면
# 그룹을 하나 추가해줘야한다.
# 그다음 보드도 하나 만들어주도록 하자. 위와같이 설정해준다.
# 자료실 기능도 설정해주자. 그다음 컨펌 눌러서 웹보드 생성을 마치자.
관리자페이지에서는 멤버들에대한 모든 권한을 수정할 수 있다.
/zboard.php?id=vul
로 접근해줘야 관리자가 아닌 멤버로의 게시판이 접속 가능하다.
'WEB > WEB HACKING' 카테고리의 다른 글
2-3) CSRF(Cross Site Request Forgery) (0) | 2018.03.19 |
---|---|
2-2) XSS(Cross Site Scripting) 공격기법, 시큐어 코딩 (0) | 2018.03.19 |
1-18) 아주 간단한 게시판 만들기 -5 (2) | 2018.03.09 |
1-17) 아주 간단한 게시판 만들기 -4 (0) | 2018.03.07 |
1-16) 아주 간단한 게시판 만들기 -3 (0) | 2018.03.06 |