Hash Length Extension Attack
Reading time: 2 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Summary of the attack
Уявіть собі сервер, який підписує деякі дані, додаючи секрет до відомих відкритих текстових даних, а потім хешуючи ці дані. Якщо ви знаєте:
- Довжину секрету (це також можна перебрати з заданого діапазону довжин)
- Відкриті текстові дані
- Алгоритм (і він вразливий до цієї атаки)
- Паддінг відомий
- Зазвичай використовується стандартний, тому якщо виконуються інші 3 вимоги, це також так
- Паддінг варіюється в залежності від довжини секрету + даних, тому довжина секрету потрібна
Тоді зловмисник може додати дані і згенерувати дійсну підпис для попередніх даних + доданих даних.
How?
В основному, вразливі алгоритми генерують хеші, спочатку хешуючи блок даних, а потім, з раніше створеного хешу (стану), вони додають наступний блок даних і хешують його.
Тоді уявіть, що секрет - "secret", а дані - "data", MD5 "secretdata" дорівнює 6036708eba0d11f6ef52ad44e8b74d5b.
Якщо зловмисник хоче додати рядок "append", він може:
- Згенерувати MD5 з 64 "A"
- Змінити стан раніше ініціалізованого хешу на 6036708eba0d11f6ef52ad44e8b74d5b
- Додати рядок "append"
- Завершити хеш, і отриманий хеш буде дійсним для "secret" + "data" + "padding" + "append"
Tool
GitHub - iagox86/hash_extender
References
Ви можете знайти цю атаку добре поясненою в https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.