{% hint style="success" %}
Öğren ve AWS Hacking pratiği yap:[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Öğren ve GCP Hacking pratiği yap: [**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**](https://training.hacktricks.xyz/courses/grte)
HackTricks'i Destekle
* [**Abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol et!
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) katıl veya [**telegram grubuna**](https://t.me/peass) katıl veya **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip et**.
* **Hacking püf noktalarını paylaşmak için PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulun.
{% endhint %}
# Saldırının Özeti
Bir sunucuyu hayal edin ki **bazı verileri** imzalıyor, bunu yaparken bilinen açık metin verilerine bir **gizli** ekleyip sonra bu veriyi karma işlemine tabi tutuyor. Eğer şunları biliyorsanız:
* **Gizli bilginin uzunluğu** (bu aynı zamanda belirli bir uzunluk aralığından kaba kuvvet saldırısı ile de bulunabilir)
* **Açık metin verisi**
* **Algoritma (ve bu saldırıya karşı savunmasız olması)**
* **Doldurma biliniyor**
* Genellikle varsayılan bir doldurma kullanılır, bu yüzden diğer 3 gereklilik karşılanıyorsa, bu da karşılanır
* Doldurma, gizli veri + veri uzunluğuna bağlı olarak değişir, bu yüzden gizli bilginin uzunluğuna ihtiyaç vardır
O zaman, bir **saldırganın** **veri ekleyip** önceki veri + eklenen veri için geçerli bir **imza oluşturması** mümkündür.
## Nasıl?
Temelde savunmasız algoritmalar, öncelikle bir veri bloğunu karma işlemine tabi tutarak karma değerlerini oluşturur ve ardından, **önceki** oluşturulan **karma** (durum) **veriden** başlayarak **bir sonraki veri bloğunu ekler** ve **karma işlemine tabi tutar**.
Öyleyse, gizli bilginin "gizli" ve verinin "veri" olduğunu hayal edin, "gizliveri"nin MD5'i 6036708eba0d11f6ef52ad44e8b74d5b.\
Bir saldırganın "ekle" dizesini eklemek istemesi durumunda:
* 64 "A"nın MD5'ini oluştur
* Önceden başlatılmış karma işleminin durumunu 6036708eba0d11f6ef52ad44e8b74d5b olarak değiştir
* "ekle" dizesini ekleyin
* Karma işlemini tamamlayın ve elde edilen karma, "gizli" + "veri" + "doldurma" + "ekle" için **geçerli bir** olacaktır
## **Araç**
{% embed url="https://github.com/iagox86/hash_extender" %}
## Referanslar
Bu saldırının iyi açıklandığı yeri [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.
{% hint style="success" %}
Öğren ve AWS Hacking pratiği yap:[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Öğren ve GCP Hacking pratiği yap: [**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**](https://training.hacktricks.xyz/courses/grte)
HackTricks'i Destekle
* [**Abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol et!
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) katıl veya [**telegram grubuna**](https://t.me/peass) katıl veya **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip et**.
* **Hacking püf noktalarını paylaşmak için PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulun.
{% endhint %}