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

41 lines
2.5 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}}
## Summary of the attack
Уявіть собі сервер, який **підписує** деякі **дані**, **додаючи** **секрет** до відомих відкритих текстових даних, а потім хешуючи ці дані. Якщо ви знаєте:
- **Довжину секрету** (це також можна перебрати з заданого діапазону довжин)
- **Відкриті текстові дані**
- **Алгоритм (і він вразливий до цієї атаки)**
- **Паддінг відомий**
- Зазвичай використовується стандартний, тому якщо виконуються інші 3 вимоги, це також так
- Паддінг варіюється в залежності від довжини секрету + даних, тому довжина секрету потрібна
Тоді зловмисник може **додати** **дані** і **згенерувати** дійсну **підпис** для **попередніх даних + доданих даних**.
### How?
В основному, вразливі алгоритми генерують хеші, спочатку **хешуючи блок даних**, а потім, **з** **раніше** створеного **хешу** (стану), вони **додають наступний блок даних** і **хешують його**.
Тоді уявіть, що секрет - "secret", а дані - "data", MD5 "secretdata" дорівнює 6036708eba0d11f6ef52ad44e8b74d5b.\
Якщо зловмисник хоче додати рядок "append", він може:
- Згенерувати MD5 з 64 "A"
- Змінити стан раніше ініціалізованого хешу на 6036708eba0d11f6ef52ad44e8b74d5b
- Додати рядок "append"
- Завершити хеш, і отриманий хеш буде **дійсним для "secret" + "data" + "padding" + "append"**
### **Tool**
{{#ref}}
https://github.com/iagox86/hash_extender
{{#endref}}
### References
Ви можете знайти цю атаку добре поясненою в [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)
{{#include ../banners/hacktricks-training.md}}