WebGoat(웹고트) LAB: Role Based Access Control Stage2

WebGoat(웹고트) LAB: Role Based Access Control

Stage 2 : Add Data Layer Access Control

 

이전 포스트에 이어서 작성하였습니다.

[보안 취약점 진단 및 대응/취약점] - WebGoat(웹고트) LAB: Role Based Access Control Stage1

 

WebGoat(웹고트) LAB: Role Based Access Control Stage1

WebGoat(웹고트) LAB: Role Based Access Control Stage 1 : Bypass Presentational Layer Access Control (1) Window xp에서 http://victim:8080/WebGoat/attack 사이트로 이동하여 목록에서 LAB: Role Based Access Control을 찾아 이동합니다. (w

psjin230.tistory.com


(1) eclipse에서 Ctrl + Shift + R을 눌러 RoleBasedAccessControl.Java를 검색합니다.

 

(2) 문제가 되는 부분을 확인합니다.

=> 요청한 사용자의 권한 여부를 확인하지 않고 인증 여부만 확인하고 요청을 처리하고 있습니다.

=> 요청이 들어왔을 때 서버 사이드에서 접근통제를 해줘야하는데 그 부분이 누락되어 있습니다.

 

(3) 문제가 있는 코드를 수정합니다.

=> 요청한 사용자의 권한을 확인하는 코드를 추가하였습니다.

 

(4) 실행 결과 확인

이전 포스트 Stage 1과 동일하게 실습을 진행합니다.

1. LAB: Role Based Access Control - Stage2를 찾아 이동

2. Tom Cat으로 로그인(비밀번호 tom)

3. Proxy에서 Intercept is on으로 설정하고 SearchStaff 또는 ViewProfile 버튼을 클릭

4. employee_id=105&action=DeleteProfile으로 변경 후 Intercept is off로 설정

5. 미션 성공

=> 코드 수정 후 Stage1과 동일하게 실습을 진행하면 DeleteProfile 요청이 처리되지 않는 것을 확인할 수 있습니다.

=> 권한에 따라 기능버튼이 보이고 안보이고 하는 것도 중요하지만, 요청이 들어왔을 때 서버에서 권한 여부를 확인하는 것이 더 중요합니다.