hash长度扩展攻击

本文分享了解一道CTF比赛中的编程题目,涉及MD5哈希和hash长度扩展攻击。作者通过分析代码逻辑,展示了如何利用已知信息和工具如HashPump进行攻击,揭示了MD5不可逆性的重要性。

作为一个信息安全的人,打各个学校的CTF比赛是比较重要的!

最近一个朋友发了道题目过来,发现有道题目比较有意思,这里跟大家分享下

这串代码的大致意思是:

这段代码首先引入了一个名为"flag.php"的文件,该文件可能包含一个标志(flag)。然后使用highlight_file(__FILE__)函数来高亮显示当前文件的源代码。

接下来,获取了两个变量:$guet$sec。其中,$guet是从GET请求中获取的参数,默认值为'123456',而$sec则是从COOKIE中获取的参数,默认值也为'123456'。

代码中有一段正则表达式/^2023(.*?)GUETSEC$/,用于检查$guet是否以"2023"开头,以"GUETSEC"结尾,并且在开头和结尾之间可以包含任意字符。如果满足这个条件,那么会进行以下判断:

  1. 如果$guet的MD5哈希值等于'a26f719b36e667992b03a298ad18b1c7',则输出$flag的MD5哈希值。
  2. 如果$guet的整数值等于反转后的$guet的整数值,则输出$flag的长度。

接下来,如果$guet不为空,那么会进行以下判断:

如果$sec的MD5哈希值等于$flag$guet拼接后的MD5哈希值,那么输出$flag的值。

最后,如果$guet为空,则输出"Oh no! You can't do this!"。

这道题目的原理是:hash长度扩展攻击,这里先介绍个脚本方法爆破,这是我最初使用的脚本:

因为要爆破的其实就中间的三个字母(一共十四个,已经知道11个)所以比较简单,

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值