哈希长度拓展攻击

     哈希长度拓展攻击:哈希长度扩展攻击(hash lengthextensionattacks)是指针对某些允许包含额外信息的加密散列函数的攻击手段。次攻击适用于MD5和SHA-1等基于Merkle–Damgård构造的算法

哈希即为散列值,其中有MD5,SHA256,等算法。以MD5为例

    MD5加密:

MD5加密过程中512比特为一组,属于分组加密,而且在运算的过程中,将512比特分为32bit*16块,分块运算

 

关键利用的是MD5的填充,对加密的字符串进行填充,使之补到448模512同余,即长度为512的倍数减64,最后的64位在补充为原来字符串的长度,这样刚好补满512位的倍数,如果当前明文正好是512bit倍数则再加上一个512bit的一组。

去学习了一波MD5加密原理。大概的过程:

例如字符串"abcde" 对应的16进制编码为0x6162636465 令str=0x6162636465,现在要进行填充补位 使得length(str) % 512 = =418 补位的方式通常为二进制情况下后面添加1个1 然后后面跟多个0 直到满足等式,最后字符为。

0x6162636465000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
002800000000000000

以十六进制表示一共是128个字符,十六进制每个字符能够转换成4位二进制,128*4=512这就是一组,正好是512bit。

MD5拓展攻击:

 网上随便找到了一张图可以大概解释一下MD5拓展过程

例如我们现在选定一个字符串 ”hsyhsy“ MD5("hsyhsy")=9468E3A2F1D1CF8D

现在不需要知道具体的字符串是什么,只需要直到长度即可,填充新的字符串:zygzyg,之前得到的“hsyhsy”MD5值作为最后一块加密的初始向量,最后得到的结果和MD5("hsyhsy+zygzyg")是相同的。

实验吧中的一道题可以作为参考:

抓包后

source值改为1

查看源码:

<pre>
$flag = "XXXXXXXXXXXXXXXXXXXXXXX";
$secret = "XXXXXXXXXXXXXXX"; // This secret is 15 characters long for security!

$username = $_POST["username"];
$password = $_POST["password"];

if (!empty($_COOKIE["getmein"])) {
    if (urldecode($username) === "admin" && urldecode($password) != "admin") {
        if ($COOKIE["getmein"] === md5($secret . urldecode($username . $password))) {
            echo "Congratulations! You are a registered user.
";
            die ("The flag is ". $flag);
        }
        else {
            die ("Your cookies don't match up! STOP HACKING THIS SITE.");
        }
    }
    else {
        die ("You are not an admin! LEAVE.");
    }
}

 主要源码在这里:

if (!empty($_COOKIE["getmein"])) {
    if (urldecode($username) === "admin" && urldecode($password) != "admin") {
        if ($COOKIE["getmein"] === md5($secret . urldecode($username . $password))) {
            echo "Congratulations! You are a registered user.
";

在抓包的时候已经给出了sample-hash值

代码中提示secret是一个长度为15的字符,这里利用hashpump得出新字符串

最终将将签名getmein为新增加的值,随后添加password为下面的值,post一下就的到了答案。

原文地址:https://www.cnblogs.com/sylover/p/10883445.html