겉바속촉

[보안] 접근제어 (feat. 기능레벨의 접근통제) 본문

IT 일기 (상반기)/네트워크 및 시스템 보안

[보안] 접근제어 (feat. 기능레벨의 접근통제)

겉바속촉 2021. 2. 8. 11:11
728x90
반응형

 

 

접근제어 (Access Control)

 

  • 화면에서의 접근제어(Presentaion layer access control) ⇒ 권한 있는 사용자에게만 기능 버튼과 링크를 제공
  • 기능 레벨에서의 접근제어(Business layer access control) ⇒ 권한 있는 사용자의 요청에 대해서만 처리를 제공
  • 데이터 레벨에서의 접근제어(Data layer access control) ⇒ 권한 범위 내의 데이터에 대해서만 접근을 허용

 

 

 

ex) 회원 정보를 조회 서비스

 

 

 조회 신청 페이지                                            조회 처리 페이지

 

     form.jsp                                                        search.jsp

 

 

 

                      search.jsp?id=1234

 회원ID: 1234  ---------------------------> 1) 로그인 여부를 확인 (= 인증 여부를 확인)

                                                     2) 고객ID가 전달되었는지 확인

                                                     3) select * from customer where cid = 1234

 

                                                     4) 결과를 반환

    local DB  <---------------------------    - 일치하는 정보가 있는 경우 → 고객 정보

                                                       - 일치하는 정보가 없는 경우 → 오류 메시지 

 

 

 

 


 

 

 

@WinXP 가상머신에서 C:\SecureCoding\start_securecoding.bat를 실행

 

server탭에서 탐캣 선택 후 벌레 클릭

 

 

 

 

@Attacker 가상머신에서 http://winxp:8080/WebGoat 로 접속

 

(webgoat / webgoat)입력

 

 

 

 

WebGoat 시작해서

Access Control Flaws - LAB으로 가주세요.

 

 

 

1. Tom 로그인을 해줍니다. (패스워드는 tom)

 

 

 

 

employee 그룹에 속해있기 때문에

다른 직원 조회하거나

ViewProfile도 자신만 가능하거나

 

권한이 제한되어 있습니다.

 

 

 

 

 

 

 

 

 

 

 

 

2. Jerry 로그인을 해줍니다. (패스워드는 jerry)

 

 

 

 

hr그룹에 속해있기 때문에

tom보다는 버튼이 더 있네요?!

 

다른 직원들 조회

profile 생성, 조회, 삭제

 

권한이 더 많습니다.

 

이것이 바로 화면에서의 접근통제!!!

 

 

 

 

 

하지만 tom은 권한이 적다고해서 없는 버튼의 기능을 호출할 수 없을까요??

 

NONONONONONO

 

발생하는 리퀘스트를 분석하면 가능합니다.

 

BurpSuite를 띄워줄게요 proxy를 이용해야하기 때문이쥬!!

 

 

 

Tom에게는 없는 기능을 이제호출해볼건데요:)

Intercept 켜준 상태에서~

 

 

View Profile 버튼 클릭!!! 후 버프슈트로 가기

 

 

DeleteProfile로 수정!!!!

그리고 인터셉트를 풀고서 다시 사이트로 가면 바뀌어져있어야합니다

 

 

핳ㅎ하하하핳하 그런데 바뀌지가 않네요?!

 

 

 

다른 방법으로 해보도록 할게요:)

바로 개발자 도구 열어서 수정하는 것입니다.

 

그래서 ViewProfile을 DeleteProfile로 고쳐주었습니다.

 

버프슈트로 가서 인터셉트 켜준 상태에서

바뀐 버튼을 클릭해주었더니

 

다음과 같이 action이 DeleteProfile로 넘어가는군요!!!

action이라는 요청 파라미터의 값이 기능 버튼의 라벨명과 동일하게 작동하기 때문에

이 버튼 역시 이제 프로필을 Delete하는 기능을 수행할 수 있을 것입니다:)

 

사실 화면에서의 접근통제는 그렇게 큰 도움이 되지 못합니다.

기능레벨을 깨기 위한 정부수집에 불과하죠.

 

 

 

 

728x90
반응형