R's Hacking Daily Log

Access Control (2) & Lab (3) 본문

Port Swigger/Access Control

Access Control (2) & Lab (3)

hanhxx 2023. 6. 18. 11:58

Horizontal Privilege Escalation

Horizontal privilege escalation은 사용자가 권한 수준이 같은 다른 사용자에게 속한 resource에

접근할 수 있을 때 발생한다. 

 

Vertical privilege escalaction은 자신에게 주어진 권한보다 높은 권한을 탈취하는 것이라면

Horizontal privilege escalation은 자신과 동일한 수준의 권한인 다른 사용자의 권한을 탈취하는 것이다.

 

동일한 수준의 권한을 얻어서 무슨 이득이 있지? 싶을 수 있지만 권한 수준이 어떻든

다른 사람의 권한을 얻는다는 건 그 사람에게만 허용되는 데이터나 기능에 접근 가능해진다는 의미이기 때문에

노출되면 안되는 정보를 제공하게 될 수 있다. 

 

** 카드 번호나 사용자 비밀번호 등은 권한이 같은 사용자 사이에서도 서로 다른 정보를 가지기 때문에 

이러한 정보에 접근 가능한 경우를 Horizontal privilege escalation이라고 한다. 

 

 

horizontal privilege escalation과 관련된 공격은 Vertical privilege escalation과 유사한 형태로 이뤄질 수 있다

간단하게 개념을 살펴보았으니 관련된 Lab을 통해 어떤 경우에 horizontal privesc가 일어나는 살펴보자!!

 

 

 

Lab - User Id controlled by request parameter )

vertical privilege escalation에서 살펴본 바와 유사하게

parameter로 userid가 전달되는 경우 어떤 문제가 발생할 수 있는 지를 보여주고 있는 Lab이다. 

 

Lab으로 들어가 My account 버튼을 눌러주면 login 페이지가 나온다. 

 

 

공격자의 계정 wiener:peter로 로그인을 해주고 나면

 

 

My account 페이지에 API key가 제공되는 걸 볼 수 있다.

로그인을 하면 그 계정에 대한 API key를 얻을 수 있는 듯하다.

 

 

Lab의 목표는 carlos 계정의 API key를 알아내

사이트 상단에 위치한 submit solution으로 유효한 carlos의 API key를 제출하는 것이다. 

 

Lab의 목표를 이루기 위해서는 carlos 계정으로 로그인할 필요가 있는 데

현재로서는 carlos의 비밀번호를 모르는 상태이다.

 

 

carlos 계정으로 로그인할 수 있는 방법이 무엇이 있을까 Lab을 좀 더 살펴보니

my account 페이지를 요청할 때 id parameter가 전달되는 걸 발견했다..!!

 

위의 packet은 로그인을 마치고 유효한 session 값을 포함해 request를 보내는 순간의 packet인데

id라는 parameter값이 wiener로 되어있는 걸 볼 수 있다.

 

 

만약 id parameter 값을 carlos로 변경해서 packet을 보내면 어떻게 될까??

 

 

id를 carlos로 조작해 packet을 보낸 결과로, My account의 계정 정보가 wiener가 아닌 carlos로 바뀐 걸 볼 수 있다.

 

 

carlos의 API key를 복사해 solution으로 입력해 제출하면 

 

 

Lab을 성공적으로 해결할 수 있다.

 

 

이번 Lab에서는 packet 속에 parameter로 사용자 계정 이름을 전달하면

입력한 계정의 정보가 나오는 페이지에 접근이 가능한 경우를 살펴보았다.

 

만약 공격자가 자신의 계정을 갖고 있거나 다른 사용자의 계정을 하나 탈취한다면

id parameter를 조작해 수많은 계정 페이지에 접근이 가능해진다는 걸 의미한다. 

 

Lab에서는 api key를 얻는 상황을 연출했지만 api key가 아닌 다른 개인 정보였다면?

그 피해가 굉장히 심각해질 수 있음 알고 넘어가자!!

'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 - Lab (1)  (0) 2023.06.12
Access Control (1)  (0) 2023.06.10
Comments