본문 바로가기

카테고리 없음

[PortSwigger] Lab: Insecure direct object references

반응형

https://portswigger.net/web-security/access-control/lab-insecure-direct-object-references

 

Lab: Insecure direct object references | Web Security Academy

This lab stores user chat logs directly on the server's file system, and retrieves them using static URLs. Solve the lab by finding the password for the ...

portswigger.net

 

 

문제

Access control_액세스 제어 : 액세스 제어(또는 권한 부여)는 누가(또는 무엇을) 시도한 작업을 수행하거나 요청한 리소스에 액세스할 수 있는지에 대한 제약을 적용하는 것이다. 웹 애플리케이션 맥락에서 액세스 제어는 인증 및 세션 관리에 따라 달라진다.
  • 인증 : 사용자를 식별하고 자신이 누구인지 확인.
  • 세션 관리 : 동일한 사용자가 수행하는 후속 HTTP 요청을 식별.
  • 액세스 제어 : 사용자가 수행하려는 작업을 수행할 수 있는지 여부 결정.

 

Insecure direct object reference(IDOR)_안전하지 않은 직접 개체 참조 :  액세스 제어 취약성의 하위 범주이다. IDOR은 응용 프로그램이 개체에 직접 액세스하기 위해 사용자 제공 입력을 사용하고, 공격자가 무단 액세스를 얻기 위해 입력을 수정할 때 발생한다.

 

문제를 보면 서버의 파일 시스템에서 사용자 채팅 로그를 직접저장한다고 한다. 그리고 정적 URL을 사용하여 검색한다.

carlos계정의 비밀번호를 찾아 로그인을 해야 문제를 해결할 수 있다.

 

페이지 오른쪽에 Live chat 링크가 있다.

 

live chat

 

메시지를 입력하여 View trasncript 버튼을 클릭하면 2.txt라는 파일이 자동으로 저장된다.

2.txt파일에는 대화했던 내용이 기록되어 있다.

 

계속 메시지를 입력해보면 순차적으로 txt파일명이 바뀐다.

버프스위트로 파일저장되는 경로를 인터셉트 요청을 하면 다음과 같은 url이 나온다.

 

 

이번에 저장될 파일명은 6.txt파일이다.

파일명을 1.txt로 바꾸어 forward를 해보았다.

 

 

 

다음과 같은 응답을 받을 수 있었고, 이 문자열 안에는 패스워드가 적혀있다.

다시 실습페이지로 돌아와서 My account를 누르면 로그인할 수 있는 화면이 나온다.

 

 

 

Username : carlos

Password : ervnsrsefyhgsnbkj15u

 

 

반응형