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

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

Stage 3 : Breaking Data Layer Access Control

 

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

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

 

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

psjin230.tistory.com


(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