赞
踩
实际上对以下算法都能实现hash长度扩展攻击,包括md4,md5,ripemd-160,sha-0,sha-1,sha-256,sha-512等,此次针对最常见的md5的hash长度扩展攻击进行讲解。
条件:
1. secret(salt)为“secret”(攻击者未知)
2.数据为“data”(攻击者已知)
3. 应用采用md5算法,签名算法是hash(secret||data)(||为拼接符,可以为空),已知一个对应项为
hash(secret || data) = 6036708eba0d11f6ef52ad44e8b74d5b(攻击者已知)
4. 追加字符为”append”(攻击者攻击时使用)
流程为:服务器向攻击者发送数据和签名(即攻击者知道条件2,3),攻击者只需要知道secret(salt)的长度(在CTF比赛中可能会给出,但是实际情况下可能需要通过遍历等方法获取)以及采用的算法,就可以附加追加的数据并为数据生成有效的签名。
可能还是有点懵圈,简单说,就是攻击者现在知道应用给出的一对数据和签名的对应值,只要再知道采用的算法,和secret(salt)的长度就可以生成有效签名进行攻击。为什么这算是攻击呢?因为正常情况下,需要知道secret(salt)才可以生成有效签名,可是在现在的情况下,攻击者无需知道secret(salt)便可以生成有效签名。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。