[php代码审计] 哈希长度拓展攻击
已知:
1、 salt的长度。
2、 message==“adminadmin”。
3、 MD5(salt+message)的值。
求:
MD5(salt+message+填充数据+任意字符串)的值。
解:
设salt = “1234567890abcdef”;则salt+message==“1234567890abcdefadminadmin”;如下图:

字符串“1234567890abcdefadminadmin”的总共26字节( 26字节 * 8bit/字节 = 208bit)。26%64!=56,则进行补位,第一步补到长度为56字节。hex(80)加若干hex(00)直到56字节长度。如图:

然后在其后添加8个字节的长度描述符(原始字符串的位长度)。26字节 * 8bit/字节=208bit=0xd0。如图:

MD5计算时,将补位后的数据进行分组,每组64字节。然后使用初始registers值和第一个分组作为输入,进行“复杂的数学变换”,生成registers,如果只有一组,那么组产生的registers稍微变换就是该字符串最终的哈希值。否则第一组产生的resigters会加入到下一分组的计算,直至分组全部计算完成,最终产生的registers稍微变换就是该字符串最终的哈希值。
我们知道了MD5(salt+message)的哈希值就能推出在计算(salt+message)的哈希时最终产生的registers,那么MD5(salt+message+填充数据+任意数据)会进行如下操作:
分组一:salt+message+填充数据。
分组一的registers我们已知(因为该分组的哈希值已知)。
分组二:任意数据+填充数据二。
该分组计算时的registers和分组数据(任意数据+填充数据二)都是已知的,那么我们就能计算出该分组的哈希值(也就是“salt+message+填充数据+任意数据“的哈希值)。
[php代码审计] 哈希长度拓展攻击的更多相关文章
- 实验吧_天下武功唯快不破&让我进去(哈希长度拓展攻击)
天下武功唯快不破 第一反应就去抓包,看到返回包的header中有FLAG的值,base64解码后得到下图所示 这就要求我们在请求头中post相应key的值,我直接在burp中尝试了多次都没有用,想起来 ...
- 哈希长度拓展攻击之De1CTF - SSRF Me
题目考查:python代码审计.hash长度拓展攻击 0x01 题目源码: #! /usr/bin/env python #encoding=utf-8 from flask import Flask ...
- 浅谈HASH长度拓展攻击
前言 最近在做CTF题的时候遇到这个考点,想起来自己之前在做实验吧的入门CTF题的时候遇到过这个点,当时觉得难如看天书一般,现在回头望去,仔细琢磨一番感觉也不是那么难,这里就写篇文章记录一下自己的学习 ...
- 哈希长度扩展攻击的简介以及HashPump安装使用方法
哈希长度扩展攻击(hash length extension attacks)是指针对某些允许包含额外信息的加密散列函数的攻击手段.该攻击适用于在消息与密钥的长度已知的情形下,所有采取了 H(密钥 ∥ ...
- 哈希长度扩展攻击(Hash Length Extension Attack)利用工具hexpand安装使用方法
去年我写了一篇哈希长度扩展攻击的简介以及HashPump安装使用方法,本来已经足够了,但HashPump还不是很完善的哈希长度扩展攻击,HashPump在使用的时候必须提供original_data, ...
- MD5加密及Hash长度拓展攻击【通俗易懂】
先放一个简单点的利用了Hash长度拓展攻击的题目 if($COOKIE["getmein"] === md5($secret . urldecode($username . $pa ...
- hash长度扩展攻击
这里面就放一张百度百科的解释吧,emmm 反正我是看不懂还是做一下题来巩固一下吧 CTF中的hash长度攻击 进入网页你会发现页面显示  我这里没有看到什么可以利用的,抓了一下包也没有什么有可以利 ...
- 实验吧Web-中-让我进去(Hash长度扩展攻击、加盐密码及Linux下hashpump的安装使用)
打开网页,测试开始,注入费老大劲,看了大佬的blog才知道怎么干. bp抓包,观察发现cookie中有个source=0,在repeater中修改为source=1,然go一下,出来了一段源代码. $ ...
- session安全&&CBC字符反转攻击&&hash拓展攻击
session安全 p神写的: 在传统PHP开发中,$_SESSION变量的内容默认会被保存在服务端的一个文件中,通过一个叫"PHPSESSID"的Cookie来区分用户.这类se ...
随机推荐
- 基于python实现自动化办公学习笔记三
Excel(1)写xls文件 # 有序字典from collections import OrderedDict# 存储数据from pyexcel_xls import save_data def ...
- 冲刺周二The Second Day
一.SecondDay照片 二.项目分工 三.今日份燃尽图 四.项目进展 码云团队协同环境构建完毕 利用Leangoo制作任务分工及生成燃尽图 完成AES加解密部分代码 用代码实现对文件的新建.移动. ...
- 【洛谷P1383 高级打字机】
题目描述 早苗入手了最新的高级打字机.最新款自然有着与以往不同的功能,那就是它具备撤销功能,厉害吧. 请为这种高级打字机设计一个程序,支持如下3种操作: 1.T x:在文章末尾打下一个小写字母x.(t ...
- Linux随笔 - vi/vim 编辑器显示行号
显示行号 1. 打开vi 编辑器 2. 输入 :set number 3. 回车 关闭行号显示 1. 打开vi 编辑器 2. 输入 :set nonumber 3. 回车 行号在每次打开 vi/v ...
- Delphi XE2 之 FireMonkey 入门(9) - TBitmap
TBitmap 主要成员: { 方法 } SetSize(); //设置大小 Clear(); //取消, 就是用指定颜色覆盖 ClearRec ...
- #1146 - Table 'phpmyadmin.pma__table_uiprefs' doesn't exist
在使用phpmyadmin时,数据库总报错#1146 - Table ‘phpmyadmin.pma_table_uiprefs' doesn't exist 修改phpmyadmin的配置文件con ...
- 安全测试工具之AppScan(Application)
AppScan是一款Web应用安全测试工具,也是唯一一个在所有级别应用上提供安全纠正任务的工具.AppScan扫描Web应用的基础架构,进行安全漏洞测试并提供可行的报告和建议.AppScan的扫描能力 ...
- vue组件兄弟间通信
四.兄弟组件间通信(event) 借助于一个公共的Vue的实例对象,不同的组件可以通过该对象完成事件的绑定和触发 var bus = new Vue(); bus.$emit()bus.$on() 熊 ...
- dp(传球)
https://ac.nowcoder.com/acm/contest/1126/B 链接:https://ac.nowcoder.com/acm/contest/1126/B来源:牛客网 上体育课的 ...
- 漫漫人生路,我们该何去何从! Python让我找到了方向
互联网寒冬 2017年冬天,是我人生中最难熬的一个冬天,其实2017年的冬天并不算太冷,比这冬日的寒风还要严寒的要属这所谓的"互联网寒冬"吧!各大厂裁员的消息充斥着互联网,互联网表 ...