IDOR (Insecure Direct Object Reference)
Reading time: 5 minutes
tip
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
IDOR (Insecure Direct Object Reference) / Broken Object Level Authorization (BOLA) εμφανίζεται όταν ένα web ή API endpoint αποκαλύπτει ή δέχεται έναν αναγνωρίσιμο δείκτη που ελέγχεται από τον χρήστη και χρησιμοποιείται άμεσα για να αποκτήσει πρόσβαση σε ένα εσωτερικό αντικείμενο χωρίς να επαληθεύει ότι ο καλών είναι εξουσιοδοτημένος να έχει πρόσβαση/να τροποποιήσει αυτό το αντικείμενο. Η επιτυχής εκμετάλλευση συνήθως επιτρέπει οριζόντια ή κάθετη κλιμάκωση προνομίων, όπως η ανάγνωση ή η τροποποίηση δεδομένων άλλων χρηστών και, στην χειρότερη περίπτωση, πλήρη κατάληψη λογαριασμού ή μαζική εξαγωγή δεδομένων.
1. Αναγνώριση Πιθανών IDORs
- Αναζητήστε παραμέτρους που αναφέρονται σε ένα αντικείμενο:
- Διαδρομή:
/api/user/1234
,/files/550e8400-e29b-41d4-a716-446655440000
- Ερώτημα:
?id=42
,?invoice=2024-00001
- Σώμα / JSON:
{"user_id": 321, "order_id": 987}
- Επικεφαλίδες / Cookies:
X-Client-ID: 4711
- Προτιμήστε endpoints που διαβάζουν ή ενημερώνουν δεδομένα (
GET
,PUT
,PATCH
,DELETE
). - Σημειώστε πότε οι αναγνωρίσιμοι δείκτες είναι διαδοχικοί ή προβλέψιμοι – αν το ID σας είναι
64185742
, τότε το64185741
πιθανώς υπάρχει. - Εξερευνήστε κρυφές ή εναλλακτικές ροές (π.χ. "Paradox team members" σύνδεσμος στις σελίδες σύνδεσης) που μπορεί να αποκαλύψουν επιπλέον APIs.
- Χρησιμοποιήστε μια εξουσιοδοτημένη συνεδρία χαμηλών προνομίων και αλλάξτε μόνο το ID διατηρώντας το ίδιο token/cookie. Η απουσία σφάλματος εξουσιοδότησης είναι συνήθως ένδειξη 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 loop)
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 Chatbot Platform (2025)
Κατά τη διάρκεια μιας αξιολόγησης της πλατφόρμας πρόσληψης McHire που υποστηρίζεται από το Paradox.ai, ανακαλύφθηκε το εξής IDOR:
- Endpoint:
PUT /api/lead/cem-xhr
- Authorization: cookie συνεδρίας χρήστη για οποιονδήποτε λογαριασμό δοκιμής εστιατορίου
- Body parameter:
{"lead_id": N}
– 8-ψήφιος, διαδοχικός αριθμητικός αναγνωριστικός
Μειώνοντας το lead_id
, ο δοκιμαστής ανέκτησε τυχαία πλήρη PII υποψηφίων (όνομα, email, τηλέφωνο, διεύθυνση, προτιμήσεις βάρδιας) καθώς και ένα JWT καταναλωτή που επέτρεπε την υποκλοπή συνεδρίας. Η αρίθμηση της κλίμακας 1 – 64,185,742
αποκάλυψε περίπου 64 εκατομμύρια αρχεία.
Αίτημα απόδειξης της έννοιας:
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
- Οριζόντια κλιμάκωση – ανάγνωση/ενημέρωση/διαγραφή δεδομένων άλλων χρηστών.
- Κατακόρυφη κλιμάκωση – χρήστης με χαμηλά προνόμια αποκτά λειτουργικότητα μόνο για διαχειριστές.
- Μαζική διαρροή δεδομένων αν οι ταυτοποιήσεις είναι διαδοχικές (π.χ., ID αιτούντων, τιμολόγια).
- Κατάληψη λογαριασμού κλέβοντας tokens ή επαναφέροντας κωδικούς πρόσβασης άλλων χρηστών.
4. Μετριασμοί & Καλές Πρακτικές
- Επιβολή εξουσιοδότησης σε επίπεδο αντικειμένου σε κάθε αίτημα (
user_id == session.user
). - Προτιμήστε έμμεσες, μη μαντεύσιμες ταυτοποιήσεις (UUIDv4, ULID) αντί για αυτόματους αυξανόμενους ID.
- Εκτελέστε την εξουσιοδότηση στην πλευρά του διακομιστή, ποτέ μην βασίζεστε σε κρυφά πεδία φόρμας ή ελέγχους UI.
- Εφαρμόστε ελέγχους RBAC / ABAC σε ένα κεντρικό middleware.
- Προσθέστε περιορισμούς ρυθμού & καταγραφή για να ανιχνεύσετε την αρίθμηση των ID.
- Δοκιμάστε την ασφάλεια κάθε νέας διεπαφής (μονάδα, ολοκλήρωση και DAST).
5. Εργαλεία
- Επεκτάσεις BurpSuite: Authorize, Auto Repeater, Turbo Intruder.
- OWASP ZAP: Auth Matrix, Forced Browse.
- Projects στο Github:
bwapp-idor-scanner
,Blindy
(μαζική αναζήτηση IDOR).
Αναφορές
- 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
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.