IDOR(Insecure Direct Object Reference)

Hadam Cho·2023년 5월 23일

Backend

목록 보기
3/3
post-thumbnail

IDOR(Insecure Direct Object Reference) 취약점

직역하면 안전하지 않은 직접 객체 참조이며 부적절한 인가라고 표현한다.

  • OWASP(Open Web Application Security Project, 소프트웨어 보안 발전을 위해 노력하는 비영리 단체)에서 3~4년 주기로 발표하는 웹 취약점 TOP 10의 1위인 Broken Access Control과 연관이 있다.

  • 서버에서 수행해야할 권한 검증 및 접근 제어를 클라이언트에서 수행하는 경우가 잦아지면서 많이 발견되는 추세이다.

  • 수평적/수직적 권한 상승이 발생하며, 이를 통해 타 사용자 정보에 접근해 유출하거나 기존 권한으로는 사용이 불가능한 기능을 이용하는 문제가 생긴다.

수평적 권한 상승

동일한 권한을 가진 다른 사용자의 객체에 접근할 수 있을 때를 말한다.

예시

  1. 타 사용자의 정보 조회

    GET /mypage/info?memberId=1111 HTTP/2
    Host: insecure-web.com

  2. 타 사용자의 전화번호 임의 변경

    PUT /mypage/info/1111 HTTP/2
    Host: insecure-web.com

    phone=010-1111-1111

수직적 권한 상승

지닌 권한을 넘어서는 기능을 수행할 수 있을 때를 말한다.

예시

  1. 관리자 권한으로 임의 사용자 계정 삭제

    DELETE /user/member/1111 HTTP/2
    Host: insecure-web.com
    Cookie: role=admin

  2. 관리자페이지 직접 접근을 통해 권한 상승

    GET /admin/dashboard HTTP/2
    Host: insecure-web.com

조치 방안

클라이언트 사이드에서 검증을 수행할 경우 공격자가 모두 우회할 수 있기 때문에 검증은 반드시 Session 또는 서버에서 발급한 Token을 통해 서버에서 수행해야 한다.

참고 자료

profile
(。・∀・)ノ゙

0개의 댓글