İstinye Üniversitesi
Bilişim Güvenliği Teknolojisi Bölümü
Ders: Sızma Testi
Eğitmen: Keyvan Arasteh
Geliştiren: Safa Hacıbayramoğlu
- 📝 Özet ve Amaç
- 📂 Proje Yapısı ve Mimari
- 🛡️ Teknik Derinlik ve Zafiyet Analizi
- ✅ Test ve Doğrulama (Manual & PoC)
- 🚀 Kurulum ve Çalıştırma
Bu laboratuvar çalışması, web uygulamalarındaki en kritik erişim kontrolü hatalarından biri olan IDOR (Insecure Direct Object Reference) konusunu uygulamalı olarak analiz etmek amacıyla geliştirilmiştir. Projenin temel amacı, yetkisiz veri erişiminin teknik risklerini (PII - Personal Identifiable Information sızıntısı) somut bir senaryo üzerinden ele almak, istismar süreçlerini (PoC) kanıtlamak ve güvenli kodlama prensiplerini dökümante etmektir.
Sistem, modüler ve temiz kod prensiplerine uygun olarak src/ klasör mimarisiyle yapılandırılmıştır:
src/: Uygulamanın çekirdek dosyalarını (Express.js tabanlı Backend ve HTML/CSS Frontend) içerir.exploit.py: Zafiyeti otomatiğe bağlayan, asenkron mantığa uygun Python tabanlı sızma testi scriptidir.MITIGATION.md: Zafiyetin kapatılmasına yönelik teknik çözüm rehberi ve risk matrisi.CHECKLIST.md: OWASP WSTG standartlarına uygun sistematik sızma testi kontrol listesi..env.example: Güvenli yapılandırma örneği (Hassas verilerin korunması bilinciyle hazırlanmıştır)..gitattributes&.gitignore: Repo profesyonelliği ve dosya yönetimi için gerekli konfigürasyonlar.
Sistem, Express.js tabanlı monolitik bir mimariye sahiptir. Analiz aşamasında şu teknik bulgular saptanmıştır:
- Zafiyet Nedeni: Sunucu tarafında oturum sahipliği (Session Ownership) kontrolü yapılmadan doğrudan kullanıcıdan gelen
idparametresine güvenilmesi (Broken Access Control). - Etki (Impact): Herhangi bir kullanıcı, sadece URL parametrelerini manipüle ederek (ID Enumeration) başkasına ait hassas fatura ve kişisel verilere erişebilmektedir.
- Sektörel Karşılık: Bu zafiyet OWASP A01:2021-Broken Access Control kategorisinde yer alır ve CWE-639 olarak tanımlanır.
Zafiyetin varlığı ve kritikliği iki farklı metodoloji ile kesinleştirilmiştir:
- Manuel Doğrulama: Tarayıcı üzerinden URL parametresi manipüle edilerek (
/api/invoice/100->101) oturum sahibi olmayan kullanıcılara ait verilerin sızdırıldığı doğrulanmıştır. - Otomatik Test (PoC): Geliştirilen
exploit.pyscripti,requestskütüphanesi kullanarak belirlenen aralıktaki tüm hassas kayıtları saniyeler içinde sızdırmış (Data Exfiltration) ve zafiyetin otomatize edilebilirliğini kanıtlamıştır.
# 1. Bağımlılıkları yükleyin
npm install
# 2. Sunucuyu başlatın
npm start
# 3. Uygulamaya erişin
# http://localhost:3000
# 4. Sızma testi scriptini çalıştırın
python exploit.py