Görev ve Zafiyet Senaryosu
Otel rezervasyon ve müşteri veri tabanında TC kimlik ve kart bilgileri şifresiz dönmekte, müşteri ID parametresi denetlenmeden IDOR açığı vermekte, rezervasyon nesneleri filtresiz ezilerek fiyat manipülasyonuna uğramakta ve müdür paneli sahte x-user-role başlığıyla ele geçirilmektedir.
Hedef (Objective)
🎯 Görev: API İstek Konsolu ile zafiyetli endpoint’leri test edin, Dr. Sentinel Tebeşir Tahtası ile mimari teoriyi öğrenin ve 10 soruluk kod okuma sınavından en az 7 doğru yaparak PASS sonucunu alın.
Adım Adım Çözüm Metodolojisi
Express Kod Okuma & PII Sızıntısı
Müşteri listeleme rotasında filtreleme eksikliğinden kaynaklanan veri sızıntısını ve BOLA/IDOR zaafiyetini kaynak kod üzerinden inceleyin.
Mass Assignment Fiyat Sıfırlama
Rezervasyon güncelleme rotasına filtresiz body yayılmasını istismar ederek konaklama tutarını 0 TL yapın.
Yetki Aşımı & Müdür Kasası
İstemci başlığı enjeksiyonuyla genel müdür kasasını açın ve RFID dijital master anahtar kodlarını geçersiz kılın.
Mavi Takım Kod Düzeltme & Sınav
Kodların güvenli karşılıklarını (DTO, Allowlist, JWT imzalama) inceleyip 10 soruluk değerlendirme sınavını tamamlayın.
Örnek Payload ve İstismar Kalıpları
GET /api/customers/2 (IDOR VIP Elif Demir)PUT /api/reservations/101 {"totalPrice": 0, "status": "FREE_VIP"}DELETE /api/reservations/101 (IDOR Silme: Kullanıcı Rezervasyonu Silinmiş)GET /api/managers/dashboard [Header: x-user-role: manager]POST /api/managers/verify-secret-hash {"candidateSecret": "..."}POST /api/managers/override-room-key {"roomNumber": "701", "newMasterCode": "1337"}
Güvenli Kodlama ve Savunma Mekanizmaları
Zafiyet Nasıl Kapatılır?
- Her nesne erişiminde oturum sahibinin (req.user.id) istenen kaynakla eşleştiğini sunucu tarafında kesin olarak doğrulayın (Ownership Check).
- DELETE ve PUT rotalarında kaynak sahipliği denetlenerek yetkisiz rezervasyon silme ve değiştirme engellenmelidir.
- SECRET_KEY ve yönetici kimlik sırları asla düz metin (plaintext) tutulmamalı, tuzlanmış (salted) SHA-256 veya argon2id ile hash'lenmelidir.
- Mass Assignment engellemek için Zod veya Joi ile Allowlist / DTO şeması tanımlayarak yalnızca izin verilen alanları güncelleyin.
- Kullanıcı rollerini istemci HTTP başlıklarına göre değil, kriptografik olarak imzalanmış JWT veya güvenli sunucu oturumlarından (Session) okuyun.
- Müşteri verisi dönerken TC Kimlik ve Kredi Kartı gibi hassas kişisel verileri (PII) API çıktısından maskeleyin veya tamamen çıkarın.
Uygulamaya Başlamaya Hazır mısınız?
SiberAdam interaktif arenasında hedef tarayıcı, DevTools ve CyberTerminal ile bayrağı hemen yakalayın.
Şimdi Çözmeye Başla ⚡