Yarış durumları ve eşzamanlılık açıkları
Kontrol ile kullanım arasındaki zaman aralığından doğan açıkları kodda bulur, eşzamanlı isteklerle kendi lab’ında kanıtlar, veritabanı işlemleri, atomik işlemler ve idempotens anahtarlarıyla kapatıp yük altında yeniden test edersin.
Seviye 401 · 14 ders · 12 pratik lab
Dersler
Kavram
- Yarış durumu nedir: kontrol zamanı ve kullanım zamanı (TOCTOU)
- Kodda yarış: oku-değiştir-yaz kalıpları
- Sınır aşımı: tek kullanımlık kuponu birçok kez kullanmak
- Kısa görev: lab kodunda yarışa açık üç işlemi bul
Tanımak
- Burp Repeater’da grup gönderimi ve tek paket tekniği
- Turbo Intruder ile eşzamanlı istekleri kendi lab’ında ölçmek
- Çok uç noktalı yarışlar ve ara durumlar
- Zamana duyarlı belirteçler: aynı anda üretilen sıfırlama bağlantıları
- Kısa görev: hediye kartı bakiyesini yarış durumuyla iki kez harca ve kanıtla
Düzeltmek
- Veritabanı işlemleri, yalıtım düzeyleri ve satır kilitleri
- Atomik işlemler ve benzersizlik kısıtları
- İdempotens anahtarları ve dağıtık kilitler
- Eşzamanlılık testleri ve günlükte çift işlem tespiti
- Bitirme görevi: bir cüzdan servisinin yarış durumlarını kapat ve yük altında yeniden test et
Pratik lablar
- Kodda oku-değiştir-yaz kalıbı: Lab kodunda bakiyeyi okuyup sonra güncelleyen ve yarışa açık üç işlemi bul.
- Kupon iki kez kullanılıyor: Tek kullanımlık kuponun eşzamanlı isteklerle iki kez uygulandığını grup gönderimiyle kanıtla.
- Hediye kartı bakiyesini iki kez harca: Lab cüzdan servisinde aynı bakiyenin iki kez harcandığını tek paket tekniğiyle kanıtla ve çift işlemi günlükte göster.
- Çok uç noktalı yarış: sepet ve ödeme: Ödeme onayı sırasında sepete ürün eklenerek ödenmemiş ürün alındığını lab'da kanıtla ve ara durumu kilitle.
- Benzersizlik kısıtıyla çift kaydı önle: Aynı davetin iki kez kabul edilmesini veritabanı benzersizlik kısıtıyla önle ve hatayı düzgün işle.
- Atomik güncelleme ile bakiye: Oku-değiştir-yaz yapan bakiye kodunu tek atomik güncellemeye çevir ve yarışın kapandığını kanıtla.
- Satır kilidi ve yalıtım düzeyi: Transfer işlemini satır kilidi ve doğru yalıtım düzeyiyle yeniden yaz ve kilitlenme olmadan yük altında test et.
- İdempotens anahtarıyla ödeme: Ödeme uç noktasına idempotens anahtarı ekle ve aynı isteğin tekrarında tek işlem yapıldığını kanıtla.
- Günlükte çift işlem tespiti: İşlem günlüğünde aynı kupon ya da kartla milisaniyeler içinde yapılan çift işlemleri bulan bir sorgu yaz.
- Eşzamanlılık testi yaz: Kapattığın yarış için eşzamanlı istek gönderen otomatik bir test yaz ve düzeltme geri alınınca kırıldığını göster.
- Aynı anda üretilen sıfırlama belirteçleri: Aynı anda istenen iki sıfırlama belirtecinin ilişkili olduğunu lab'da göster ve üretimi zamandan bağımsız yap.
- Cüzdan servisini yük altında yeniden test et: Kurgusal Velora Cüzdan servisinin tüm yarış durumlarını kapat ve yük testiyle bakiye tutarlılığını kanıtla.
Kurs hakkında
Kontrol ile kullanım arasındaki zaman aralığından doğan açıkları kodda bulur, eşzamanlı isteklerle kendi lab’ında kanıtlar, veritabanı işlemleri, atomik işlemler ve idempotens anahtarlarıyla kapatıp yük altında yeniden test edersin.
Ne öğreneceksin
Ön koşullar
Aynı yolun 301 düzeyine kadar olan konularını uygulamış olmalısın.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux masaüstünde geçer; araçlar pencereli arayüzleriyle hazırdır. Kurulum gerekmez, bilgisayar ekranı önerilir.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 401 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.