OAuth 2.0, OpenID Connect ve JWT güvenliği
Yetkilendirme kodu akışını, PKCE’yi ve kimlik belirtecini adım adım izler; redirect_uri, state ve JWT doğrulama hatalarını lab’daki tek oturum açma kurulumunda bulur, düzeltir ve yeniden test edersin.
Seviye 301 · 18 ders · 15 pratik lab
Dersler
OAuth 2.0
- OAuth’un rolleri: kaynak sahibi, istemci, yetkilendirme ve kaynak sunucusu
- Yetkilendirme kodu akışı adım adım
- PKCE: açık istemcilerde kodu korumak
- OAuth akışını Burp ile izlemek
- Kısa görev: lab uygulamasının giriş akışını çiz ve her parametreyi açıkla
OAuth hataları
- redirect_uri doğrulaması: gevşek eşleştirme ve kod sızıntısı
- state parametresi ve giriş CSRF’si
- Kapsam ve onay: fazla yetki isteyen istemciler
- Kısa görev: iki OAuth hatasını kanıtla ve yetkilendirme sunucusunda kapat
OpenID Connect
- Kimlik belirteci: talepler, nonce ve hedef kitle
- Keşif belgesi ve JWKS: anahtarlar nasıl bulunur
- Hesap bağlama hataları: doğrulanmamış e-postaya güvenmek
- Kısa görev: kimlik belirtecini eksiksiz doğrulayan kodu yaz
JWT derinlemesine
- Algoritmalar: HS256, RS256 ve algoritma karışıklığı
- Başlık parametreleri: kid, jku ve x5u riskleri
- Süre, yenileme ve iptal listesi
- Kütüphane seçimi ve güvenli varsayılanlar
- Bitirme görevi: bir tek oturum açma kurulumunu denetle, düzelt ve yeniden test et
Pratik lablar
- Giriş akışını çiz: hangi parametre ne işe yarar: Lab istemci uygulamasının yetkilendirme kodu akışını Burp ile izle ve her yönlendirmedeki parametrelerin görevini tabloya dök.
- state parametresi olmayan giriş: Akışta state parametresinin kullanılmadığını göster, giriş CSRF'sine nasıl yol açtığını açıkla ve istemciye state doğrulaması ekle.
- Gevşek redirect_uri eşleştirmesi: Yetkilendirme sunucusunun redirect_uri'yi önek eşleştirmesiyle kabul ettiğini kanıtla ve tam eşleşmeye çevir.
- PKCE'siz açık istemci: Tek sayfalı istemcinin PKCE kullanmadığını göster, istemciye ve sunucuya PKCE zorunluluğu ekle ve kodun tek başına işe yaramadığını kanıtla.
- Fazla kapsam isteyen istemci: İkinci lab istemcisinin ihtiyaç duymadığı kapsamları aldığını bul, kapsamları daralt ve onay ekranını gerçeği yansıtacak şekilde düzelt.
- Kimlik belirtecini çöz ve taleplerini oku: Bir kimlik belirtecini çöz, iss, aud, exp ve nonce taleplerini açıkla ve istemcinin hangilerini kontrol etmediğini bul.
- Hedef kitle kontrolü eksik: Başka istemci için üretilmiş kimlik belirtecinin kabul edildiğini kanıtla ve aud doğrulamasını ekle.
- Doğrulanmamış e-postayla hesap bağlama: Sağlayıcıdan gelen doğrulanmamış e-postayla mevcut hesabın ele geçtiğini lab'da göster ve email_verified ile sub talebine dayalı bağlamaya geç.
- Kimlik belirtecini eksiksiz doğrulayan kod: İmza, iss, aud, exp ve nonce'u JWKS'ten alınan anahtarla doğrulayan işlevi yaz ve beş hatalı belirteçle test et.
- Tek oturum açma denetimi: Selvara Kimlik: Kurgusal Selvara Kimlik kurulumunda OAuth, OIDC ve JWT zaaflarını denetle, kapat ve tüm akışı yeniden test et.
- Süresi dolmayan erişim belirteci: exp talebi olmayan belirteçlerin kabul edildiğini göster, kısa ömür zorunlu kıl ve süresi dolmuş belirtecin reddedildiğini test et.
- JWT kütüphanesinin güvensiz varsayılanı: Doğrulama çağrısında algoritma listesi verilmediğini bul ve güvenli varsayılanlarla sabitle.
- Algoritma karışıklığı: RS256 yerine HS256: Sunucunun açık anahtarı HMAC anahtarı gibi kabul ettiğini lab'da kanıtla ve doğrulamayı tek algoritmaya kilitle.
- kid başlığıyla dosya yolu: kid değerinin anahtar dosyası yoluna karıştığını kanıtla ve kid'i sabit anahtar kimliği eşlemesine bağla.
- jku ile dışarıdan anahtar kümesi: Sunucunun jku başlığındaki adresten anahtar indirdiğini kanıtla ve anahtar kaynağını yapılandırmadaki JWKS adresiyle sınırla.
Kurs hakkında
Yetkilendirme kodu akışını, PKCE’yi ve kimlik belirtecini adım adım izler; redirect_uri, state ve JWT doğrulama hatalarını lab’daki tek oturum açma kurulumunda bulur, düzeltir ve yeniden test edersin.
Ne öğreneceksin
- OAuth 2.0
- OAuth hataları
- OpenID Connect
- JWT derinlemesine
Ön koşullar
Aynı yolun 101 ve 201 düzeyindeki konularına hâkim 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 301 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.