IDOR

개념

사용자가 제공한 입력을 기반으로 객체에 직접 액세스를 할 때 발생한다. 권한이 필요한 리소스에 접근하기 위해 인증이 필요한데, IDOR가 가능하면 인증을 우회하고 직접 액세스 할 수 있다. 리소스로는 다른 사용자의 데이터, 시스템 파일, DB 레코드 또는 파일 등이 있다. IDOR는 애플리케이션이 사용자가 입력한 값을 충분히 검사하지 않고 개체를 가져오는 데 이용하기 때문에 발생한다.

일반적으로 IDOR는 수평적 권한 상승과 관련이 있다. 하지만 수직적 권한 상승 또한 가능하다.

2007 OWASP Top 10에 포함된 흔한 취약점이다.

예시

IDOR vulnerability with direct reference to database objects

https://insecure-website.com/customer_account?customer_number=132355 와 같은 URL을 이용해 계정 페이지에 접근하는 사이트가 있다. 여기서 customer_number는 DB 쿼리에 직접 사용된다. 다른 제어가 없는 경우 단순히 이 번호를 조작하여 다른 고객의 정보에 접근할 수 있다. 이는 IDOR를 이용한 수평적 권한 상승의 예이다. 더 권한이 많은 사용자에게 접근했다면 이는 수직적 권한 상승이 되겠다.

IDOR vulnerability with direct reference to static files

https://insecure-website.com/static/12144.txt 와 같은 URL로 static 파일에 접근하고 있다. 이 정적 파일은 채팅 메시지 내용을 저장하고 있다. 숫자를 변경하여 다른 사용자의 채팅 메시지에 접근할 수도 있다.

참고 문제: Portswigger-Insecure direct object references

참고


tags: web hacking, access control vulnerability