Insecure Direct Object Refference

2023. 8. 24. 11:30보안/WebGoat

Insecure Direct Object Refference

Insecure Direct Object Reference (IDOR)는 웹 애플리케이션 보안 공격 중 하나로, 인증되지 않은 사용자가 다른 사용자의 데이터나 리소스에 접근하거나 조작할 수 있는 취약점을 의미한다. 이러한 공격은 보안 검증이 제대로 이루어지지 않아 발생하는 경우가 많다.

 

 

IDOR 공격이 발생하는 상황
  • 인증 및 권한 검증 부재 : 애플리케이션이 사용자의 접근 권한을 제대로 확인하지 않은 경우, 인증되지 않은 사용자가 민감한 데이터나 리소스에 접근할 수 있다.
  • 노출된 식별자 사용 : 애플리케이션이 데이터를 조회하거나 조작할 때 식별자(예: 데이터베이스 ID, 파일명 등)를 직접 사용하는 경우, 사용자가 식별자를 변경하여 다른 데이터나 리소스에 접근할 수 있다.
  • 링크 노출 : 보안 검증 없이 생성된 링크나 URL을 공유하면, 다른 사용자들이 그 링크를 이용하여 인증되지 않은 데이터나 리소스에 접근할 수 있다.

 

 

첫번째 문제

간단한 문제다. tom과 cat을 각 탭에 입력해서 인증해보라고 한다.

시작 화면

 

 

성공!

 

 

두번째 문제

두번째 문제도 간단하다. View Profile을 클릭해서 속성들을 확인하고, 패킷을 잡아 숨겨진 속성을 찾는 것이다.

시작 화면

 

 

패킷을 잡아 Response를 보면 role과 userid를 확인할 수 있다

 

 

제출하면 성공!

다음 문제들을 풀기 위해 두 속성을 기억하라고 한다.

 

 

세번째 문제

 유저 tom의 다른 프로필 정보들을 알기 위해 url에서 어던 방식으로 입력해야 하는지 제출해보라고 한다.

시작 화면

 

 

burp suit에서 intercept를 on으로 켠 후 Submit을 눌러 패킷을 확인해보자.

빨간 박스에서 경로 확인이 가능하다. 'alt-path'에는 tom에 관한 정보를 넣어야 할 것 같다.

 

 

바로 앞의 문제에서 role과 userid 속성들을 기억하라고 했다. 이 중에서 여기에 유용한 속성은 userid일 것 같다. 앞 문제에서 잡은 패킷에서 tom의 userid를 확인했으므로 alt-path 대신에 입력하고 제출해보자.

성공!

 

 

네번째 문제

이번에는 다른 계정의 프로필을 확인해보라고 한다.

시작 화면

 

 

intercept를 on으로 켜서 패킷을 잡고 Repeater로 보내보자.

앞의 문제와 비슷함을 알 수 있다. 빨간 박스를 조작해보자.

 

 

tom의 id를 넣으면 다시 해보라고 한다. 추측이 맞나보다

 

 

수를 하나씩 늘리면서 반복해보면 2342388의 계정이 있음을 확인할 수 있다. 잡은 패킷에 입력하고 Forward 하자

 

 

성공!

 

'보안 > WebGoat' 카테고리의 다른 글

Without password  (0) 2023.08.24
Admin lost password  (0) 2023.08.24
Cross-Site-Scripting(XSS)  (0) 2023.08.24
Password reset  (0) 2023.08.23
JWT tokens  (0) 2023.08.23