[CTF]让我进去

本文详细介绍了一种针对特定哈希函数的安全漏洞——哈希长度扩展攻击。通过实例演示了如何利用此攻击方法,在不知道密钥的情况下推算出匹配的哈希值。文章提供了具体的攻击流程、所需工具的安装与使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

类型:web
网址:http://www.shiyanbar.com/ctf/1848
攻击:hash长度扩展攻击
一句话总结:
哈希长度扩展攻击适用于加密情况为:hash($SECRET, $message)的情况,其中 hash 最常见的就是 md5、hash1。我们可以在不知道$SECRET的情况下推算出另外一个匹配的值。如:
我们知道md5($SECRET . strrev($_COOKIE[“auth”]))的值
我们知道$hsh的值
我们可以算出另外一个 md5 值和另外一个 $hsh 的值,使得 $hsh == md5($SECRET . strrev($_COOKIE[“auth”]))

Writeup:

未知的值:
$secret = “XXXXXXXXXXXXXXX”; // This secret is 15 characters long for security!
$COOKIE[“getmein”] === md5($secret . urldecode($username . $password))
已知的值:
setcookie(“sample-hash”, md5($secret . urldecode(“admin” . “admin”)), time() + (60 * 60 * 24 * 7));

使用hash长度扩展攻击工具hashpump
hashpump安装:
git clone https://github.com/bwall/HashPump
apt-get install g++ libssl-dev
cd HashPump
make && make install

hashpump使用:
./hashpump
Input Signature: 571580b26c65f306376d4f64e53cb5c7
Input Data: admin
Input Key Length: 20
Input Data to Add: abc
7db18a2831cdab27425f299ca09f034e
admin\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\xc8\x00\x00\x00\x00\x00\x00\x00abc
注:
Input Signature = sample-hash值
Input Data = admin
Input Key Length = secret(15)+admin(5) = 20
Input Data to Add = abc(随便写)
7db18a2831cdab27425f299ca09f034e = getmein值
admin\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\xc8\x00\x00\x00\x00\x00\x00\x00abc

admin%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%c8%00%00%00%00%00%00%00abc
是password值

FLAG

CTF{cOOkieS_4nd_hAshIng_G0_w3LL_t0g3ther}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值