Electronic Code Book (ECB)
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
(ECB) Elektronik Kod Kitabı - her açık metin bloğunu şifreli metin bloğu ile değiştiren simetrik şifreleme şemasıdır. En basit şifreleme şemasını temsil eder. Ana fikir, açık metni N bitlik bloklara bölmek (girdi verisinin blok boyutuna, şifreleme algoritmasına bağlıdır) ve ardından yalnızca anahtarı kullanarak her açık metin bloğunu şifrelemektir (şifre çözmektir).
ECB kullanmanın birçok güvenlik etkisi vardır:
Şifreli mesajdan bloklar çıkarılabilir
Şifreli mesajdan bloklar yer değiştirebilir
Bir uygulamaya birkaç kez giriş yaptığınızı ve her zaman aynı çerezi aldığınızı hayal edin. Bu, uygulamanın çerezinin <kullanıcı_adı>|<şifre>
olmasındandır.
Sonra, her ikisi de aynı uzun şifreye ve neredeyse aynı kullanıcı adına sahip iki yeni kullanıcı oluşturursunuz.
Her iki kullanıcının bilgilerinin bulunduğu 8B'lik blokların eşit olduğunu keşfedersiniz. Sonra, bunun ECB'nin kullanılıyor olabileceği nedeniyle olabileceğini hayal edersiniz.
Aşağıdaki örnekte olduğu gibi. Bu 2 çözülmüş çerezin nasıl birkaç kez \x23U\xE45K\xCB\x21\xC8
bloğunu içerdiğine dikkat edin.
Bu, o çerezlerin kullanıcı adı ve şifresinin birkaç kez "a" harfini içermesinden kaynaklanmaktadır (örneğin). Farklı olan bloklar, en az 1 farklı karakter içeren bloklardır (belki ayırıcı "|" veya kullanıcı adındaki bazı gerekli farklılık).
Şimdi, saldırganın formatın <username><delimiter><password>
mi yoksa <password><delimiter><username>
mi olduğunu keşfetmesi gerekiyor. Bunu yapmak için, formatı ve ayırıcının uzunluğunu bulana kadar benzer ve uzun kullanıcı adları ve şifreler ile birkaç kullanıcı adı oluşturabilir:
2
2
4
8
3
3
6
8
3
4
7
8
4
4
8
16
7
7
14
16
Çerezin formatını bilerek (<username>|<password>
), admin
kullanıcı adını taklit etmek için aaaaaaaaadmin
adında yeni bir kullanıcı oluşturun ve çerezi alın ve çözün:
Görünüşe göre daha önce yalnızca a
içeren kullanıcı adıyla oluşturulan \x23U\xE45K\xCB\x21\xC8
desenini görebiliriz.
Sonra, 8B'lik ilk bloğu kaldırabilir ve admin
kullanıcı adı için geçerli bir çerez elde edersiniz:
Birçok veritabanında WHERE username='admin';
veya WHERE username='admin ';
aramak aynı şeydir. (Ekstra boşluklara dikkat edin)
Bu nedenle, admin
kullanıcısını taklit etmenin başka bir yolu:
len(<username>) + len(<delimiter) % len(block)
olan bir kullanıcı adı oluşturmak. 8B
blok boyutuyla, username
adında bir kullanıcı adı oluşturabilirsiniz; ayırıcı olarak |
kullanıldığında <username><delimiter>
parçası 2 adet 8B blok oluşturacaktır.
Ardından, taklit etmek istediğimiz kullanıcı adını ve boşlukları içeren tam sayıda blok dolduracak bir şifre oluşturmak, örneğin: admin
Bu kullanıcının çerezi 3 bloktan oluşacak: ilk 2 blok kullanıcı adı + ayırıcı blokları ve üçüncü blok şifre (kullanıcı adını taklit eden): username |admin
Sonra, sadece ilk bloğu son blokla değiştirin ve admin
kullanıcısını taklit etmiş olacaksınız: admin |username
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)