🔐 Insecure Direct Object References (IDOR) & Broken Access Control
IDOR (Insecure Direct Object References) i Broken Access Control to jedne z najpoważniejszych podatności w aplikacjach webowych, umożliwiające nieautoryzowany dostęp do danych innych użytkowników poprzez manipulację parametrami.
🎯 Ataki na IDOR i manipulacja parametrami
1️⃣ Na czym polega IDOR?
IDOR występuje, gdy aplikacja udostępnia zasoby na podstawie identyfikatora (np. user_id
), ale nie sprawdza, czy użytkownik ma do nich uprawnienia.
Przykładowy podatny endpoint
GET /api/user/profile?user_id=123
Atakujący zmienia wartość user_id
na inną:
GET /api/user/profile?user_id=456
Jeśli serwer zwraca profil innego użytkownika, to aplikacja jest podatna na IDOR.
2️⃣ Manipulacja parametrami ID w Burp Suite
- Przechwyć żądanie w Burp Suite.
- Zmień wartość
user_id
na inną. - Sprawdź, czy aplikacja zwraca dane innego użytkownika.
3️⃣ IDOR w operacjach zapisu
Niektóre aplikacje pozwalają na edycję lub usuwanie cudzych danych:
POST /api/user/update?user_id=123&email=hacker@example.com
Jeśli można zmienić dane innego użytkownika, aplikacja jest podatna.
🛠️ Narzędzia do wykrywania IDOR (Burp Suite, Autorize)
1️⃣ Burp Suite – manualne testowanie IDOR
Burp Suite umożliwia przechwytywanie i edytowanie żądań HTTP.
Kroki testowania:
- Otwórz Burp Suite i przejdź do Proxy > Intercept.
- Przechwyć żądanie do API z identyfikatorem użytkownika.
- Zmień ID na inny i ponów żądanie.
- Sprawdź, czy aplikacja zwraca dane innego użytkownika.
2️⃣ Autorize – automatyczne wykrywanie IDOR
Autorize to rozszerzenie do Burp Suite, które automatycznie testuje, czy użytkownik ma dostęp do nieautoryzowanych zasobów.
Jak używać Autorize?
- Zainstaluj Autorize w Burp Suite.
- Przechwyć żądania autoryzowanego użytkownika.
- Uruchom testowanie z uprawnieniami gościa.
- Sprawdź, czy aplikacja nie zwraca wrażliwych danych.
3️⃣ Ffuf – automatyczne fuzzowanie IDOR
Jeśli aplikacja używa sekwencyjnych ID:
ffuf -u "http://example.com/api/user/profile?user_id=FUZZ" -w id_list.txt
Sprawdza, które ID zwracają odpowiedzi.
🔐 Jak zabezpieczyć aplikację przed IDOR?
✅ Weryfikacja uprawnień użytkownika na serwerze – nigdy nie ufaj parametrom z żądania. ✅ Używanie UUID zamiast sekwencyjnych ID – trudniejsze do odgadnięcia. ✅ Ograniczenie dostępu do API na poziomie backendu – kontrola autoryzacji. ✅ Logowanie i monitorowanie podejrzanych zmian w parametrach – wykrywanie manipulacji.
Ataki IDOR mogą prowadzić do wycieku wrażliwych danych i przejęcia kont użytkowników. Kolejnym krokiem będzie analiza podatności Security Misconfigurations i ataki na pliki! 🚀