01 — IDOR
Was ist IDOR?
IDOR heißt „Insecure Direct Object Reference". Auf Deutsch: Der Server prüft nicht, ob du eine Bestellung sehen darfst – er gibt sie einfach raus, wenn du die ID kennst.
Beispiel: Du bestellst etwas und siehst in der URL /bestellung?id=1001. Was passiert, wenn du 1002 probierst?
🎮 Probier's selbst aus
Das ist ein unsicherer Übungs-Shop. Tippe eine ID ein und drück auf „Anzeigen".
Wie ein Hacker das ausnutzt
Der Angreifer schreibt ein kleines Script, das alle IDs von 1 bis 99999 durchprobiert und die Daten speichert:
for id in {1..99999}; do
curl "https://shop.de/api/order?id=${id}" \
>> alle_bestellungen.json
done🔍 Scanne deine echte Seite
Trage deine Domain ein – wir prüfen, ob öffentlich erreichbare APIs Bestell-, Kunden- oder User-Daten leaken.
Sucht öffentlich erreichbare Bestell-, Kunden- und User-APIs auf deiner Domain.
✅ Wie schützt du dich?
Der Server muss bei JEDER Anfrage prüfen: „Gehört diese Bestellung zu dem User, der sie anfragt?"
// FALSCH ❌
return db.orders.find({ id });
// RICHTIG ✅
return db.orders.find({
id,
user_id: aktuellerUser.id // <-- der Filter!
});