哈希长度拓展攻击条件

需要知道

  • 密文长度 (SECRET)
  • 明文 (哈希值)
  • 部分密文内容 (auth)

HashPump安装

HashPump是一个借助于OpenSSL实现了针对多种散列函数的攻击的工具,支持针对MD5、CRC32、SHA1、SHA256和SHA512等长度扩展攻击。而MD2、SHA224和SHA384算法不受此攻击的影响,因其部分避免了对状态变量的输出,并不输出全部的状态变量。基于linux的(我装在kail上。

git clone https://github.com/bwall/HashPump
apt-get install g++ libssl-dev
cd HashPump
make
make install

安装后如果想在python2.7里实现hashpump,可以使用hashpumpy这个插件:

pip install hashpumpy

HashPump使用

借助与saBaFi安全沙场的-又要攻击哈希了。来说明。
题目链接
进入题目得到:
V5YgwF.png
得到源码:

<?php
$auth = "uenit";
$SECRET="*";
echo "length is :".strlen($SECRET)."<br>";
if (isset($_GET["auth"])&&isset($_COOKIE["hash"]))
{
    if($_GET["auth"]==$auth)
    {
        echo "wrong0";
        exit();
    }
    $hash=$_COOKIE["hash"];
    if ($hash!== md5($SECRET.urldecode($_GET["auth"])))
    {
        echo "wrong1";
        exit();
    }    
}
else
{
    setcookie("hash", md5($SECRET.$auth));
    echo "wrong2";
    exit();
}
echo "SeBaFi{*}";
exit(); 

我们知道密钥长度为12。
部分密文为:uenit
查看cook得到明文:aa6b13e05882f2b4959f80185d958f3f
利用工具:

alex@localhost:~# hashpump
Input Signature: aa6b13e05882f2b4959f80185d958f3f (明文)
Input Data: uenit(部分密文)
Input Key Length: 12 (密钥长度)
Input Data to Add: alex  (签名,随意写)
60ea4ec10d36ef0391e09089081cd606
uenit\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x00\x00\x00\x00\x00\x00\x00alex

或者直接:

root@localhost:~# hashpump -s aa6b13e05882f2b4959f80185d958f3f -d uenit -k 12 -a alex
60ea4ec10d36ef0391e09089081cd606
uenit\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x00\x00\x00\x00\x00\x00\x00alex

然后我们把hash值放到cookie里。
再把得到的密文中的\x替换成%后,get提交

auth=uenit%80%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%88%00%00%00%00%00%00%00alex

即可。

python使用

>>> import hashpumpy
>>> help(hashpumpy.hashpump)

查看参数来使用。

参考:
pcat

  • 基本工具使用

    常用工具nc/ncatnc被誉为网络界的瑞士军刀。它的功能可见一般。。。 侦听模式 / 传输模式 telnet / 获取banner信息 传输文本信息 传输文件/传输目录 加密传输文件 远程控制/木⻢ 加密所有流量 流...

    基本工具使用
  • nmap的使用

    前言端口范围:1-65535 常见的端口以及服务: 21 — ftp协议 22 — ssh远程登陆端口(linux) 23 — telnet协议 25 — 邮箱协议 smtp 发送邮件 110 — pop3协议 接收邮件 80 — ...

    nmap的使用
  • sublime text3的vinage快捷键

    sublime快捷键如何添加 开始 运行 regedit(打开系统注册表) ctrl+f(搜索shell) 在shell下新建Sublime选项 在Sublime选项下新建command选项 在command下打开”默认”写以下内容:...

    sublime text3的vinage快捷键
  • burp的基本&高级使用

    burp介绍: Burp Suite 是用于攻击web 应用程序的集成平台,包含了许多工具。Burp Suite为这些工具设计了许多接口,以加快攻击应用程序的过程。 brupsuite环境配置 功能总览 bp设置和使用proxy设置 ...

    burp的基本&高级使用
  • linux三剑客

    前言之前用一些脚本都经常用到grep,sed,awk。但是一直不太熟悉,今天来学习一下,做个备忘录。 grep格式: grep [OPTIONS] PATTERN [FILE...] grep [OPTIONS] [-e PATTER...

    linux三剑客
  • i春秋2020新春战“疫”网络安全公益赛 web Writeup

    前言这次比赛题目质量挺好的,除啦环境可能有时候有点问题。(就让我遇到了。心态炸了一天。。。)其他都挺好的。 DAY1简单的招聘系统知识点:sql注入的联合注入或盲注存在注册和登陆功能,首先进行注册后登陆进系统,发现有一个模块是管理员才...

    i春秋2020新春战“疫”网络安全公益赛 web Writeup
  • 计算机组成原理学习

    计算机组成原理第一章 计算机系统概论计算机系统的层次结构 冯·诺依曼计算机的特点 计算机由运算器、存储器、控制器、输入设备和输出设备五大部件组成 指令(程序)和数据以二进制同等地位地存储在存储器中,可按址寻访 指令由操作码和地址码组...

    计算机组成原理学习
  • 2019安洵杯+2019广外比赛web部分题解

    2019安洵杯easy_web知识点:MD5强碰撞,命令执行这个题比较简单,看题目发现传入参数img和cmd,然而图片是传入的img参数控制,让我想到ddctf的一道题,然后发现img是通过把文件名进行转十六进制后两次base64编码...

    2019安洵杯+2019广外比赛web部分题解
  • bypass disfunction

    前言PHP 的 disabled_functions主要是用于禁用一些危险的函数防止攻击者执行系统命令。但是有一些绕过方法。这里做个总结。 基本思路有四种绕过 disable_functions 的手法:第一种,攻击后端组件,寻找存在...

    bypass disfunction
  • 2019极客大挑战RCE ME

    题目环境:http://114.116.44.23:40001/ 题目还是老样子。无字母数字rce。知识点其实都有写过,就不说了。详细参见:【RCE提高篇】题目源码: <?php ini_set("display_errors"...

    2019极客大挑战RCE ME