WebGoat(웹고트) LAB: Role Based Access Control
Stage 3 : Breaking Data Layer Access Control
이전 포스트에 이어서 작성하였습니다.
[보안 취약점 진단 및 대응/WebGoat] - WebGoat(웹고트) LAB: Role Based Access Control Stage2
(1) Window xp에서 http://victim:8080/WebGoat/attack 사이트로 이동하여 목록에서 LAB: Role Based Access Control - Stage3을 찾아 이동합니다. (webgoat / webgoat)
(2) Jerry로 로그인합니다.
(3) Tom의 Profile을 확인합니다.
=> Jerry는 hr 그룹에 속해있기 때문에 다른 사용자(ex.Tom)의 Profile을 조회할 수 있습니다.
(4) Tom으로 로그인한 후 View Profile을 클릭합니다.
=> Tom는 employee 그룹에 속해있기 때문에 본인의 Profile만 조회할 수 있습니다.
=> 어떻게 해야 Tom이 다른 사용자의 Profile을 조회할 수 있을까요?
(5) Proxy에서 Intercept is on으로 설정하고 ViewProfile을 클릭합니다.
(6) 다른 사람의 profile을 보기 위해 employee_id = 112로 변경하고 Intercept is off로 바꿔줍니다.
(7) 실행결과
=> 미션 성공
=> Neville 사용자의 profile을 조회하였습니다.
조회화면은 2가지로 나뉘는데, 목록조회와 상세조회가 있습니다. 목록조회는 비슷한 유형의 데이터가 나열회는 형식이고, 상세조회는 하나의 데이터의 구성요소가 출력되는 형식입니다.
num=1330은 목록 데이터에서 해당 데이터를 유일하게 식별할 수 있는 값입니다.
=> select * from students where num=1330
=> num(유일키)만으로 데이터를 조회하는 경우, 파라미터를 조작하면 목록에 나오지 않는 데이터도 열람이 가능합니다.
목록 조회 기능을 구현할 때, 다양한 조건을 추가하는것이 좋습니다.
- 검색어
- 정책 (ex) address 컬럼의 값이 '서울'인 데이터에서만 조회
- 권한 (ex) 로그인한 사용자와 동일한 전공인 학생만 조회
상세 조회 기능을 구현할 때, 목록조회에서 적용한 조건과 레코드를 선택하기 위한 조건을 함께 사용해야합니다
=> select * from students where 조건1, 조건2, 조건3, num=1330