IDOR (Insecure Direct Object Reference)

O que é?

O IDOR é um tipo de falha de controle de acesso que ocorre quando uma aplicação usa um identificador para acessar um objeto diretamente, mas não verifica se o usuário tem permissão para acessar aquele objeto específico.

Identificação

Esta vulnerabilidade é comumente encontrada quando a aplicação utiliza entradas fornecidas pelo usuário para buscar registros em um banco de dados ou arquivos no sistema.

Onde procurar:

  • Parâmetros de consulta (Query strings) na URL.

  • Corpo de requisições POST/PUT (JSON ou formulários).

  • Headers HTTP.

  • Cookies.

Exemplo de Exploração

Um usuário autenticado acessa suas próprias informações através da URL: https://site.com/api/user/123

O atacante altera o ID numérico para tentar acessar dados de outros usuários: https://site.com/api/user/124 https://site.com/api/user/125

Se a aplicação retornar os dados do usuário 124 ou 125 para o usuário 123, a falha de IDOR está confirmada.

Como Prevenir

A melhor forma de prevenção é implementar um controle de acesso robusto em nível de objeto:

  • Verificação de Autorização: O servidor deve verificar se o usuário autenticado possui permissão explícita para visualizar ou modificar o recurso associado ao ID solicitado.

  • Uso de Identificadores Não-Sequenciais: Utilizar UUIDs (Universally Unique Identifiers) ou hashes aleatórios em vez de números incrementais (1, 2, 3…) dificulta a adivinhação e a enumeração por parte de atacantes.