JWT saldırıları nasıl test edilir?

Dec 27 2022
Herkese merhaba bu blogda JWT saldırılarını özetlemeye çalışacağım Konuşacağımız 3 ana somut nokta var - JWT'ler nedir?- JWT saldırıları nelerdir?- JWT saldırıları ile ilgili senaryolar Hadi başlayalım !! - JWT'ler nedir? JSON web belirteçleri (JWT'ler), sistemler arasında kriptografik olarak imzalanmış JSON verilerini göndermek için standartlaştırılmış bir biçimdir. Klasik oturum belirteçlerinden farklı olarak, bir sunucunun ihtiyaç duyduğu tüm veriler istemci tarafında JWT'nin kendisinde depolanır.

Herkese merhaba bu blogda JWT saldırılarını özetlemeye çalışacağım.

Konuşacağımız 3 ana sağlam noktamız var
- JWT'ler nedir?
- JWT saldırıları nelerdir?
- JWT saldırılarıyla ilgili senaryolar

Başlayalım !!

- JWT'ler nedir?

JSON web belirteçleri (JWT'ler), sistemler arasında kriptografik olarak imzalanmış JSON verilerini göndermek için standartlaştırılmış bir biçimdir. Klasik oturum belirteçlerinden farklı olarak, bir sunucunun ihtiyaç duyduğu tüm veriler istemci tarafında JWT'nin kendisinde depolanır.
Bir JWT 3 bölümden oluşur: bir başlık , bir yük ve bir imza . Bunların her biri bir nokta ile ayrılmıştır.xxxxx.yyyyy.zzzzz

Bir JWT'nin başlık ve yük bölümleri, yalnızca base64url kodlu JSON nesneleridir. Çoğu durumda, başlık ve yük verileri, jetona erişimi olan herkes tarafından kolayca okunabilir veya değiştirilebilir. Bu nedenle, herhangi bir JWT tabanlı mekanizmanın güvenliği büyük ölçüde kriptografik imzaya bağlıdır .
İmza bölümünü oluşturmak için kodlanmış başlığı , kodlanmış yükü , bir sırrı , başlıkta belirtilen algoritmayı alıp imzalamanız gerekir .

- JWT saldırıları nelerdir?

JWT saldırıları, kötü amaçlı bir hedefe ulaşmak için sunucuya değiştirilmiş JWT'ler gönderen bir kullanıcıyı içerir.

- JWT saldırılarıyla ilgili senaryolar

Fikri özetlemek gerekirse, tek bir amacımız var, imzayla oynamak. imzanın içeriğiyle oynayarak imzayla oynayabiliriz (yük - başlığın "alg" - başlık - gizli - belirtilenlerin hepsini imzala). Bu blogda 7 senaryomuz var ve buradan daha fazla bilgi edinmek için JWT Editör uzantısını kullanacağım

  • İlk senaryo: (yalnızca yük ile oynayın)
İlk senaryo için resim
  • ikinci senaryo: (payload & “alg” ile oynayın)

{
    "alg": "none",
    "typ": "JWT"
}

Hashcat kullanarak Brute-force gizli anahtarlarını test edin, ardından çıktıyı kullanın ve kodlayın ve Yeni Simetrik Anahtar'a tıklayın ve özellik için oluşturulan değeri kBase64 kodlu sır ile değiştirin.

hashcat -a 0 -m 16500 <jwt> <wordlist>

Yeni RSA Anahtarı ve Oluştur'u tıklatarak parametre aracılığıyla kendinden imzalı JWT'leri enjekte etmeyi test edin ve ardından Gömülü JWK ile saldırınjwkjwk

  • Beşinci senaryo: (harici sunucu üzerinden başlıkla oynayın)

{
    "keys": [

    ]
}

  • Altıncı senaryo:
  • Yedinci senaryo:

Kaynaklar