Görev ve Zafiyet Senaryosu
API uç noktası gelen Authorization Bearer tokenını çözerken algoritmayı header içerisinden okumakta ve "none" geldiğinde imza doğrulamasını atlamaktadır. Saldırgan rolü "admin" yaparak şifresiz token oluşturur.
Hedef (Objective)
🎯 Görev: Token başlığında "alg": "none" tanımlayıp imza kısmını silerek sunucuya yönetici (admin) rolünde sahte bir token gönderin ve kasa kilidini açın.
Adım Adım Çözüm Metodolojisi
Token Ayrıştırma
Mevcut JWT belirtecini Base64url formatında ayrıştırıp başlık ve yük içeriğini inceleyin.
Algoritmayı "none" Yapma
Başlıktaki alg değerini "none" olarak değiştirip payload içindeki role değerini "admin" yapın.
İmzasız İstek Gönderme & Bayrak
Tokenın üçüncü (imza) kısmını boş bırakarak Authorization başlığıyla API kasasına istek atın.
Örnek Payload ve İstismar Kalıpları
eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJyZ2xlIjoiYWRtaW4iLCJ1c2VyIjoiYWRtaW4ifQ.Bearer eyJhbGciOiJOT05FIiwidHlwIjoiSldUIn0.eyJzdWIiOiIxMjM0NTY3ODkwIiwicm9sZSI6ImFkbWluIn0.
Güvenli Kodlama ve Savunma Mekanizmaları
Zafiyet Nasıl Kapatılır?
- Sunucuda beklenen algoritmayı (örn: HS256 veya RS256) açıkça zorunlu kılın (whitelisting).
- alg: none başlığını kesinlikle reddeden güncel ve test edilmiş JWT kütüphaneleri kullanın.
- Gizli anahtarları (HMAC secret / RSA private key) güvenli ortam değişkenlerinde saklayı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 ⚡