웹 진단/게시판 실습

[게시판 실습] - 불충분한 인가 (1) 관리자 페이지 접속 시 검증 로직 미흡

보안개구리 2024. 6. 10. 12:11

[설 명]

 접근제어가 필요한 중요 페이지의 통제수단이 미흡한 경우, 비인가자가 URL 파라미터 값 변경 등의 방법으로 중요 페이지에 접근하여 민감한 정보 열람 및 변조가 가능하므로 접근 권한에 대한 검증 로직을 구현하여 비인가자의 악의적인 접근을 차단하여야 한다.

 

[점검 내용]

 민감한 데이터 또는 기능에 접근 및 수정 시 통제 여부 점검

 

[점검 기준]

 접근제어가 필요한 중요 페이지의 통제수단이 미흡하여 비인가자의 접근이 가능한 경우 취약

 

[대응 방법]

 * 접근제어가 필요한 중요 페이지는 세션을 통한 인증 등 통제수단을 구현하여 인가된 사용자 여부를 검증 후 해당 페이지에 접근할 수 있도록 함

 * 페이지별 권한 매트릭스를 작성하여 접근제어가 필요한 모든 페이지에서 권한 체크가 이뤄지도록 구현하여야 함

 

[진단 과정]

1) 디렉터리 스캔 도구(DirBuster)를 이용하여 현재 진단 대상(http://127.0.0.1:8088/hacker_B)을 스캔합니다. 

디렉터리 스캔

 

2) 스캔 결과 확인 시 admin.jsp 페이지가 존재함을 확인하였습니다.

admin.jsp 페이지 노출 확인

 

3) 해당 페이지(127.0.0.1:8088/hacker_B/admin.jsp)로 접속 시 회원 목록(id, pw, 이름)이 노출됨을 확인하였습니다.

관리자 페이지 노출

 

4. 소스코드 확인 시 해당 페이지는 'admin'이라는 아이디로 로그인 할 경우 관리자라는 메뉴가 보이며 접근할 수 있는 페이지인데 여기서 문제는 해당 페이지에 대한 접근 권한 검증 로직이 존재하지 않는다는 것입니다. 

소스코드 확인

 

5. 로그인을 하지않았거나 사용자가  'admin'이 아닐 경우 admin.jsp 페이지에 접근할 수 없도록 권한 검증 로직을 추가하였습니다.

소스코드 수정

 

6. 소스코드 검증 로직 추가 후 admin.jsp 페이지에 재접속을 시도하였습니다. 재접속 시 접근 권한이 없다는 메시지와 함께 접속이 불가함을 확인하였습니다.

관리자 페이지 접속 실패