CSRF, SameSite ve tıklama korsanlığı
Tarayıcının çerezi kendiliğinden göndermesinin neden olduğu istek sahteciliğini ve görünmez çerçeve hilesini kendi uygulamanda tanır, belirteç, SameSite ve çerçeve kurallarıyla kapatırsın.
Seviye 201 · 15 ders · 13 pratik lab
Dersler
CSRF nasıl olur
- Tarayıcı çerezi kendiliğinden gönderir: CSRF’nin kökü
- CSRF için gereken üç koşul
- Burp ile CSRF’ye açık bir işlemi tanımak
- Kendi uygulaman için kavram kanıtı sayfası hazırlamak
- Kısa görev: lab uygulamasındaki e-posta değiştirme işleminin CSRF’ye açık olduğunu kanıtla
Savunmalar
- Eşleştirici belirteç deseni
- Çift gönderimli çerez ve imzalı belirteçler
- SameSite: Strict, Lax ve None’ın gerçek davranışı
- Origin ve Referer kontrolü, Fetch Metadata başlıkları
- Belirteç hataları: yönteme göre atlanan kontrol, oturuma bağlanmayan belirteç
- Kısa görev: üç CSRF savunmasını uygula ve her birini yeniden test et
Tıklama korsanlığı ve tespit
- Tıklama korsanlığı: görünmez çerçevedeki düğme
- frame-ancestors ve X-Frame-Options ile korunmak
- Şüpheli çapraz kökenli istekleri günlükte görmek
- Bitirme görevi: bir uygulamanın durum değiştiren tüm işlemlerini CSRF’ye karşı koru
Pratik lablar
- E-posta değiştirme işlemi CSRF'ye açık: İkinci lab kökeninden hazırlanan bir sayfanın e-posta değiştirme işlemini tetiklediğini kanıtla ve işleme belirteç ekle.
- GET ile durum değiştiren işlem: Bir resim etiketiyle tetiklenebilen GET tabanlı silme işlemini bul, işlemi POST'a taşı ve belirteçle koru.
- JSON uç noktası ve basit içerik türü: Düz metin içerik türüyle gönderilen isteği JSON gibi işleyen uç noktadaki CSRF'yi kanıtla ve içerik türü kontrolü ekle.
- Kimlikle oturum açma CSRF'si: Kurbanı saldırganın hesabıyla oturum açtıran giriş CSRF'sini lab'da göster ve giriş formunu da belirteçle koru.
- Eşleştirici belirteç desenini uygula: Belirteçsiz bir şifre değiştirme formuna oturuma bağlı belirteç ekle ve belirteçsiz isteğin reddedildiğini göster.
- Yönteme göre atlanan belirteç kontrolü: Belirteç kontrolünün yalnızca POST'ta yapıldığını, aynı işlemin PUT ile atlandığını kanıtla ve kontrolü tüm durum değiştiren yöntemlere yay.
- Oturuma bağlı olmayan belirteç: Bir kullanıcının belirtecinin başka kullanıcının oturumunda kabul edildiğini göster ve belirteci oturuma bağla.
- SameSite=Lax'ın kapatmadığı boşluk: Lax çerezle korunduğu sanılan ama üst düzey GET gezinmesiyle tetiklenen işlemi kanıtla ve belirteçle birlikte işlemi POST'a taşı.
- Fetch Metadata ile sunucu tarafı süzgeç: Sec-Fetch başlıklarına göre çapraz site istekleri reddeden bir ara katman yaz ve meşru akışları bozmadığını test et.
- Çerçeveye alınabilen ayarlar sayfası: Ayarlar sayfasının başka kökende çerçeveye alınabildiğini göster ve frame-ancestors ile engelle.
- Yalnızca bir sayfada eksik koruma: Tüm sitede çerçeve koruması var gibi görünürken korumanın eksik kaldığı hesap silme sayfasını bul ve ortak başlığa bağla.
- Çapraz kökenli istekleri günlükte gör: Erişim günlüğünde Origin ve Referer başlıklarına göre şüpheli çapraz kökenli durum değiştiren istekleri bul ve kaynağını raporla.
- Tüm durum değiştiren işlemleri koru: Kurgusal Orvik Abonelik uygulamasındaki tüm durum değiştiren işlemleri listele, CSRF ve çerçeve korumasını ekle ve hepsini yeniden test et.
Kurs hakkında
Tarayıcının çerezi kendiliğinden göndermesinin neden olduğu istek sahteciliğini ve görünmez çerçeve hilesini kendi uygulamanda tanır, belirteç, SameSite ve çerçeve kurallarıyla kapatırsın.
Ne öğreneceksin
- CSRF nasıl olur
- Savunmalar
- Tıklama korsanlığı ve tespit
Ön koşullar
Aynı yolun 101 düzeyindeki kurslarını bitirmiş olmak ya da o konuları biliyor olmak yeterlidir.
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 201 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.