[게시판 실습] - 불충분한 인가 (1) 관리자 페이지 접속 시 검증 로직 미흡
[설 명]
접근제어가 필요한 중요 페이지의 통제수단이 미흡한 경우, 비인가자가 URL 파라미터 값 변경 등의 방법으로 중요 페이지에 접근하여 민감한 정보 열람 및 변조가 가능하므로 접근 권한에 대한 검증 로직을 구현하여 비인가자의 악의적인 접근을 차단하여야 한다.
[점검 내용]
민감한 데이터 또는 기능에 접근 및 수정 시 통제 여부 점검
[점검 기준]
접근제어가 필요한 중요 페이지의 통제수단이 미흡하여 비인가자의 접근이 가능한 경우 취약
[대응 방법]
* 접근제어가 필요한 중요 페이지는 세션을 통한 인증 등 통제수단을 구현하여 인가된 사용자 여부를 검증 후 해당 페이지에 접근할 수 있도록 함
* 페이지별 권한 매트릭스를 작성하여 접근제어가 필요한 모든 페이지에서 권한 체크가 이뤄지도록 구현하여야 함
[진단 과정]
1) 디렉터리 스캔 도구(DirBuster)를 이용하여 현재 진단 대상(http://127.0.0.1:8088/hacker_B)을 스캔합니다.
2) 스캔 결과 확인 시 admin.jsp 페이지가 존재함을 확인하였습니다.
3) 해당 페이지(127.0.0.1:8088/hacker_B/admin.jsp)로 접속 시 회원 목록(id, pw, 이름)이 노출됨을 확인하였습니다.
4. 소스코드 확인 시 해당 페이지는 'admin'이라는 아이디로 로그인 할 경우 관리자라는 메뉴가 보이며 접근할 수 있는 페이지인데 여기서 문제는 해당 페이지에 대한 접근 권한 검증 로직이 존재하지 않는다는 것입니다.
5. 로그인을 하지않았거나 사용자가 'admin'이 아닐 경우 admin.jsp 페이지에 접근할 수 없도록 권한 검증 로직을 추가하였습니다.
6. 소스코드 검증 로직 추가 후 admin.jsp 페이지에 재접속을 시도하였습니다. 재접속 시 접근 권한이 없다는 메시지와 함께 접속이 불가함을 확인하였습니다.