HASH长度扩展攻击

HASH长度扩展攻击是一种安全漏洞,攻击者利用特定哈希函数的内部处理,通过已知的哈希值和部分信息,推算出原始输入中的未知部分。在场景中,服务端使用salt和文件名生成SHA1哈希以验证请求。攻击者通过猜测salt长度,结合HashPump工具,可能获取salt值并伪造合法请求。为防止此类攻击,应采用HMAC算法,它通过双重哈希摘要增强安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HASH长度扩展攻击

场景:
当用户向服务端取文件时,服务端会进行验证,给出salt值(用于验证,客户端无从得知,并且需要salt值才能够拿到文件),并进行hsh=sha1(salt+filename)的运算。现通过工具拿到hash即hsh值,并得知filename。
求salt值。
原理:
当服务器进行sha1运算前,会判断字符串(slat+filename)的长度,并将整段字符串分割成64bytes一组。之后进行hash生成。
首先,当hash函数拿到需要被hash的字符串后,先将其字节长度整除64,取得余数。
如果该余数正好等于56,那么就在该字符串最后添加上8个字节长度描述符(具体用bit表示)。
如果不等于56,就先对字符串进行长度填充,填充时第一个字节为hex(80),其他字节均用hex(00)填充,填充至余数为56后,同样增加8个字节的长度描述符(该长度描述符为需要被hash的字符串的长度,不是填充之后整个字符串的长度)。以上过程,称之为补位

EXP:
先用一定的方法
得到salt的长度:


在现实攻击环境中,攻击者无法获知密钥长度,需要对其长度进行猜测。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值