R's Hacking Daily Log

Access Control - Lab (1) 본문

Port Swigger/Access Control

Access Control - Lab (1)

hanhxx 2023. 6. 12. 11:31

Privilege escalation이란 

줄여서 privesc이라고도 표현되는 데, 이는 말 그대로 권한 상승을 의미한다. 

원래는 실행시킬 수 없는 작업을 수행하거나 제한되는 데이터에 접근했을 경우 이를

Vertical privilege escalation이라 한다. 

 

이전 글에서 정리했듯이 access control에는 크게 3가지 유형이 있는데 

그중에서도 주어지지 않은 더 높은 권한의 기능을 실행하지 못하도록 제어하는 걸

vertical access control이라 정의했다. 

 

Vertical privilege escalation은 반대로 Vertical access control을 깨뜨려버리는 경우로

일반 사용자가 관리자 권한으로 실행할 수 있는 계정 삭제와 같은 기능을 실행하게 되면 이를

Broken Access Control이라 한다. 

 

** 원래는 실행할 수 있는 기능이 아닌데 적절한 Vertical access control이 이뤄지지 않아 

관리자 권한 기능에 접근하게 되었기 때문에 부서진 접근 제어, Broken access control이다.

 

이번 글에서는 Vertical Access control에 대해서 문제가 발생할 수 있는 경우를 Lab을 통해 살펴보자. 

 

 

 

Lab - Unprotected admin functionality ) 

첫 번째 Lab은 admin 기능에 대해 URL로 접근가능한 경우이다. 

Lab에 들어가서 robots.txt를 입력하면 disallow라는 이름으로 directory name이 나와있다. 

Disallow : /administrator-panel

 

 

disallow된 경로로 들어가니 그냥 들어가진다.

/administrator-panel로 들어가면 user를 삭제할 수 있는 버튼이 눈에 들어온다.

 

 

Lab의 목표대로 carlos 계정을 삭제하면 끝!

 

 

이 Lab에서는 admin 기능과 관련된 페이지에 대해 적절한 보호 조치 없이 아무나 접근 가능하게 노출시켜 둔 사례이다. 

URL을 통해 페이지에 접근하기만 하면 로그인을 하지 않았더라도, admin 계정이 아니더라도

계정을 마음대로 삭제할 수 있는 경우를 보여주고 있다. 

 

 

 

Lab - unprotected admin fuctionality with Unpredictable URL ) 

바로 두 번째 Lab을 살펴보자.

이번에는 /admin or /robots.txt와 같은 directory를 입력해 봐도 별 다른 정보를 얻을 수 없었다.

그래서 View page source를 확인해봤더니 

 

 

script tag 사이에 작성된 내용에 adminPanelTag.setAttribute('href', '/admin-gsgl5c').

흔한 robots.txt와 같은 경로가 아닌 나름대로 지정해 둔 admin 경로가 있는 듯하다.

 

 

해당 path를 입력하면 carlos 계정을 삭제할 수 있는 페이지가 나온다. 

 

path를 위와 같이 지정하는 경우, 공격자에 의해 바로 예측되지 않겠지만 page source와 같이 

누구나 접근 가능한 페이지에 이런 정보를 기재해 두는 건

위험한 정보 유출이라 할 수 있다..!!

'Port Swigger > Access Control' 카테고리의 다른 글

Access Control - Lab (6)  (0) 2023.06.20
Access Control - Lab (5)  (0) 2023.06.19
Access Control - Lab (4)  (0) 2023.06.19
Access Control (2) & Lab (3)  (0) 2023.06.18
Access Control (1)  (0) 2023.06.10
Comments