hacktricks/src/crypto-and-stego/hash-length-extension-attack.md

41 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Hash Length Extension Attack
{{#include ../banners/hacktricks-training.md}}
## Saldırının Özeti
Bir sunucunun bazı bilinen açık metin verilerine bir **gizli** ekleyerek **imza** attığını ve ardından bu veriyi **hash**'lediğini hayal edin. Eğer şunları biliyorsanız:
- **Gizlinin uzunluğu** (bu, verilen bir uzunluk aralığından da brute force ile elde edilebilir)
- **Açık metin veri**
- **Algoritma (ve bu saldırıya karşı savunmasız)**
- **Padding biliniyor**
- Genellikle varsayılan bir padding kullanılır, bu nedenle diğer 3 gereklilik karşılandığında, bu da geçerlidir
- Padding, gizli+veri uzunluğuna bağlı olarak değişir, bu yüzden gizlinin uzunluğu gereklidir
O zaman, bir **saldırgan** **veri** ekleyip **önceki veri + eklenen veri** için geçerli bir **imza** **üretebilir**.
### Nasıl?
Temelde, savunmasız algoritmalar hash'leri önce bir **veri bloğunu hash'leyerek** oluşturur ve ardından, **önceden** oluşturulmuş **hash** (durum) üzerinden **bir sonraki veri bloğunu ekleyip** **hash'ler**.
O zaman, gizli "secret" ve veri "data" ise, "secretdata"nın MD5'i 6036708eba0d11f6ef52ad44e8b74d5b'dir.\
Eğer bir saldırgan "append" dizesini eklemek isterse:
- 64 "A"nın MD5'ini oluşturur
- Önceden başlatılmış hash'in durumunu 6036708eba0d11f6ef52ad44e8b74d5b olarak değiştirir
- "append" dizesini ekler
- Hash'i tamamlar ve sonuçta elde edilen hash, **"secret" + "data" + "padding" + "append"** için geçerli bir hash olacaktır
### **Araç**
{{#ref}}
https://github.com/iagox86/hash_extender
{{#endref}}
### Referanslar
Bu saldırıyı iyi bir şekilde açıklanmış olarak [https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks](https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks) adresinde bulabilirsiniz.
{{#include ../banners/hacktricks-training.md}}