hash长度扩展攻击

发布时间 2023-12-15 12:57:30作者: qingshanboy

hash长度扩展攻击

就是针对允许包含额外信息的加密散列函数的攻击手段

允许包含额外信息就是用户可用控制要加密的内容

一般情况是:

知道密钥长度

知道密钥与某字符串拼接后的经过加密的hash值

知道一部分要加密的内容

要加密内容的不知道部分是用户输入的值

用户需要传入一个hash值,用于与加密内容加密后的hash值进行比较

2023xctf分站赛

<?php
highlight_file(__FILE__);
include "./secret_key.php";
include "./salt.php";
//$salt = XXXXXXXXXXXXXX // the salt include 14 characters
//md5($salt."adminroot")=e6ccbf12de9d33ec27a5bcfb6a3293df
@$username = urldecode($_POST["username"]);
@$password = urldecode($_POST["password"]);
if (!empty($_COOKIE["digest"])) {
    if ($username === "admin" && $password != "root") {
         if ($_COOKIE["digest"] === md5($salt.$username.$password)) {
            die ("The secret_key is ". $secret_key);
        }
        else {
            die ("Your cookies don't match up! STOP HACKING THIS SITE.");
        }
    }
    else {
        die ("no no no");
    }
}

以上源码我们知道盐的长度,需要传入一个digest,然后传入username和password,用于与盐拼接并md5加密,再将得到的hash与传入的digest值比较是否相等

工具:hashpump

# hashpump
Input Signature: e6ccbf12de9d33ec27a5bcfb6a3293df
Input Data: adminroot
Input Key Length: 14
Input Data to Add: abc