R's Hacking Daily Log

Access Control - Lab (6) 본문

Port Swigger/Access Control

Access Control - Lab (6)

hanhxx 2023. 6. 20. 10:10

Lab - User ID controlled by request parameter with password disclosure

지금까지 access control과 관련된 대표적인 Horizontal & Vertical privilege escalation Lab을 풀어보았다.

이번 글에서는 추가적으로 간단히 살펴볼 만한 Lab을 풀어보고자 한다!

 

 

첫 번째 Lab은 Horizontal escalation에서 Vertical escalation으로의 전환을 다루는 내용이다. 

Lab으로 들어가서 로그인을 하면 현재 로그인한 계정의 비밀번호가 제공되는 걸 확인할 수 있다.

접근 제어가 적절하게 이루어져 이 페이지에 사용자 본인만 접근할 수 있다면 문제가 되지 않지만 그렇지 못한 경우를

보여주고자 하는 것이 이 Lab의 목적이다. 

 

 

wiener 계정으로 로그인한 상태에서 My account page를 새로고침 하면 위와 같은 packet이 만들어지는 데

이때 id parameter를 wiener → administrator로 조작하면 

 

 

administrator page가 결과로 출력된다. 이 페이지 상에 비밀번호를 복사하거나 

 

 

page 내용을 확인하면 password를 얻을 수 있게 된다. 

 

 

login page에서 admin 계정으로 로그인을 하고 나면 우측 상단에 Admin panel 버튼이 제공되고 

 

 

해당 버튼을 눌러 접근할 수 있는 페이지에서 carlos 계정을 제거할 수 있다. 

 

 

결과적으로 유효한 계정 정보를 하나만 가지고 있다면 Lab과 같은 상황에서는 admin 계정까지 탈취할 수 있게 되는 것이다.

 

이는 My account page에 접근하고자 하는 사람이 현재 로그인한 사용자와 동일인물인지 확인하는 절차가 

적절히 이뤄지지 않았기 때문에 가능한 것으로 

 

권한 수준과 상관없이 유효한 id parameter만 전달하면 id로 지정한 계정의 비밀번호를 얻을 수 있기 때문에

horizontal & vertical escalation이 모두 가능해진다. 

 

 

 

Lab - Insecure direct object references

이번 Lab에서는 live chat이라는 기능이 구현되어 있는 데

 

 

로그인을 안해도 live chat 기능은 실행이 된다. 

대충 이것저것 보내면서 chat을 하다가 페이지 하단에 있는 view transciprt 버튼을 눌러봤더니 

 

 

live chat한 내용이 txt 파일로 저장되는 걸 볼 수 있었다. 

 

 

몇 차례 채팅을 하고 파일을 저장하면서 조금 신경 쓰인 부분은

파일 이름이 고정적이라는 것과 /download-transcript/2.txt부터 시작한다는 것이다.

 

 

packet 기록을 보면 알 수 있듯이 2.txt에서 시작해 3.txt, 4.txt로 파일 이름이 순차적으로 증가되는 걸 볼 수 있다.

하지만 1.txt나 0.txt가 아니라 왜 2.txt로 시작하는 건지 의문이 들었다.

 

 

그래서..! 

request 내용을 변경해서 보내봤더니 /download-transcript/0.txt는 존재하지 않는다고 하고 

 

 

/download-transcript/1.txt에 대해 request를 보냈더니 아래와 같은 response가 왔다.

내용을 읽다보면 중간에 password를 확인하는 부분이 나온다. 

 

 

password를 복사해서 carlos 계정으로 로그인을 해봤더니 

 

 

로그인에 성공했다! 1.txt 파일로 기록된 내용은 carlos가 자신의 비밀번호를 확인하는 과정이었던 것이다. 

 

이렇게 정적인 파일 이름을 사용하면서 예측 가능한 파일명 설정은 공격자로 인한 파일 조회를 너무나도 

간단하게 만들기 때문에 지양하는 것이 좋다!!

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

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