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

4.8 KiB
Raw Blame History

Hash Length Extension Attack

{% hint style="success" %} 学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE)
学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)

支持 HackTricks
{% endhint %}

WhiteIntel

WhiteIntel 是一个由 暗网 驱动的搜索引擎,提供 免费 功能以检查公司或其客户是否被 窃取恶意软件 入侵

WhiteIntel 的主要目标是打击由于信息窃取恶意软件导致的账户接管和勒索软件攻击。

您可以访问他们的网站并免费尝试他们的引擎:

{% embed url="https://whiteintel.io" %}


攻击概述

想象一个服务器,它通过 附加 一个 秘密 到一些已知的明文数据并对这些数据进行 签名。如果您知道:

  • 秘密的长度(这也可以从给定的长度范围进行暴力破解)
  • 明文数据
  • 算法(并且它对这种攻击是脆弱的)
  • 填充是已知的
  • 通常使用默认填充,因此如果满足其他 3 个要求,这个也满足
  • 填充根据秘密+数据的长度而变化,这就是为什么需要知道秘密的长度

那么,攻击者 可以 附加 数据 并为 之前的数据 + 附加的数据 生成一个有效的 签名

如何?

基本上,脆弱的算法首先通过 哈希一个数据块 来生成哈希,然后 之前创建的 哈希(状态)中 添加下一个数据块哈希它

然后,想象秘密是 "secret",数据是 "data""secretdata" 的 MD5 是 6036708eba0d11f6ef52ad44e8b74d5b。
如果攻击者想要附加字符串 "append",他可以:

  • 生成 64 个 "A" 的 MD5
  • 将之前初始化的哈希状态更改为 6036708eba0d11f6ef52ad44e8b74d5b
  • 附加字符串 "append"
  • 完成哈希,结果哈希将是 "secret" + "data" + "padding" + "append" 的有效哈希

工具

{% embed url="https://github.com/iagox86/hash_extender" %}

参考

您可以在 https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks 找到对此攻击的详细解释。

WhiteIntel

WhiteIntel 是一个由 暗网 驱动的搜索引擎,提供 免费 功能以检查公司或其客户是否被 窃取恶意软件 入侵

WhiteIntel 的主要目标是打击由于信息窃取恶意软件导致的账户接管和勒索软件攻击。

您可以访问他们的网站并免费尝试他们的引擎:

{% embed url="https://whiteintel.io" %}

{% hint style="success" %} 学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE)
学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)

支持 HackTricks
{% endhint %}