首页 > 其他分享 >hash长度扩展攻击

hash长度扩展攻击

时间:2023-12-15 13:00:44浏览次数:25  
标签:hash 传入 攻击 扩展 Input 长度 加密

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

标签:hash,传入,攻击,扩展,Input,长度,加密
From: https://www.cnblogs.com/q1stop/p/17903151.html

相关文章

  • Chrome扩展开发实战:快速填充表单
    大家好,我是dom哥。我正在写关于Chrome扩展开发的系列文章,感兴趣的可以点个小星星。填表单是打工人经常面对的场景,作为一个前端,我经常开发一些PC端的页面,它们主要由表单和表格构成,而输入框又是表单里最常见的表单项。接下来就试着做一个简单的小扩展,用于快速给表单里的输入......
  • 代码随想录算法训练营第二天| LeetCode977.有序数组的平方、209.长度最小的子数组、59
    LeetCode977.有序数组的平方●今日学习的文章链接和视频链接代码随想录(programmercarl.com) 题目链接977.有序数组的平方-力扣(LeetCode) ●自己看到题目的第一想法昨天正好做了这道题目,总体来说就是用双指针法,要么从绝对值最小的数开始排序,要么从绝对值最大的数开......
  • 写Hash被卡哪有不疯的?硬撑罢了
    我要疯了我的\(Hash\)一直被卡一直被卡一直被卡一直被卡一直被卡一直被卡一直被卡一直被卡一直被卡一直被卡一直被卡一直被卡写Hash被卡哪有不疯的?硬撑罢了写Hash被卡哪有不疯的?硬撑罢了写Hash被卡哪有不疯的?硬撑罢了写Hash被卡哪有不疯的?硬撑罢了写Hash被卡哪有不疯的?硬撑罢了写......
  • 代码随想录算法训练营第二天|977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵
    LeetCode977有序数组的平方题目链接:977.有序数组的平方思路:双指针,由两侧向中间逼近 LeetCode 209.长度最小的子数组题目链接:209.长度最小的子数组思路:滑动窗口,关键点滑动窗口起始点和终止点位置关系的确定 LeetCode 59.螺旋矩阵题目链接:59.螺旋矩阵关键点:循环处理......
  • quickjs C功能扩展的四种写法
    一、前言 茴香豆的“茴”字有多少种写法?这篇博客不是为了炫技,是JS就是这么多种情况。比如C语言,就只能通过函数调用,没有类的概念。比如Java,就只能通过类、对象的方式。不能单独创建函数。哪怕main函数也要包装成一个class。而JS,即可以提供函数,也可以提供类。在ES5之前,JS......
  • 【活动回顾】Databend 云数仓与 Databend Playground 扩展组件介绍
    2023年12月7日,作为KubeSphere的合作伙伴,Databend荣幸地受邀参与了KubeSphere社区主办的云原生技术直播活动。本次活动的核心议题为「Databend云数仓与DatabendPlayground扩展组件介绍」,此次分享由DatabendLabs的研发工程师尚卓燃担任主讲嘉宾,向与会者呈现了一场......
  • Chrome扩展的核心:manifest 文件(中)
    大家好,我是dom哥。我正在写关于Chrome扩展开发的系列文章,感兴趣的可以点个小星星。在上一篇中已经完成了Chrome扩展的雏形,本篇接着介绍manifest中的可选字段,完善扩展的细节。manifest中的可选字段"content_scripts"向web页面注入JavaScript和CSS。可以说这是......
  • Rong晔大佬教程学习(4):寄存器堆和立即数扩展
    在第一节的设计结构图中,我们可以看到,ctrl.v模块译码后,就可以得到我们实际运算所需要的数据,有两种:1.寄存器值,通过译码后得到的地址在寄存器堆中读出;2.立即数值,在译码后进行扩展得到的完整的立即数值。首先来看寄存器堆,一共有32个寄存器: 接口名称表示每个寄存器的功......
  • 解决mysql的语句中group_concat长度限制问题
    在mysql中,有个函数叫“group_concat”,平常使用可能发现不了问题,在处理大数据的时候,会发现内容被截取了。其实MYSQL内部对这个是有设置的,默认不设置的长度是1024。查看默认配置showvariableslike"group_concat_max_len";模板返回是Variable_nameValuegroup_co......
  • Java-研究HashMap的源码
    Java-研究HashMap的源码JDK版本:17类注释基于哈希表的Map接口实现。此实现提供了所有可选的映射操作,并允许null值和null键。(HashMap类大致相当于Hashtable,只不过它是不同步的并且允许null。)该类不保证映射的顺序;特别是,它不保证顺序随着时间的推移保持不变。此实现为基本操......