让我进去(CTF)

题目链接:http://ctf5.shiyanbar.com/web/kzhan.php
开局根据提示,说明要抓包看看内容
这里写图片描述
随便填入一些数据,抓包发现cookie处有个hash值,以及source,尝试修改了source得到了如下回显的后台代码。
这里写图片描述
这里写图片描述

主要代码如下:

if (!empty($_COOKIE["getmein"])) {
    if (urldecode($username) === "admin" && urldecode($password) != "admin") {
        if ($COOKIE["getmein"] === md5($secret . urldecode($username . $password))) {
            echo "Congratulations! You are a registered user.\n";
            die ("The flag is ". $flag);
        }
        else {
            die ("Your cookies don't match up! STOP HACKING THIS SITE.");
        }
    }

那么也就是用户名必须是admin,而密码不能为admin,而且用户名与密码与SECRET经过md5加密后与cookie中的hash值(571580b26c65f306376d4f64e53cb5c7)一致;那么接下来要做的就是揭秘md5了,而secret是15长度的(回显代码头部给的提示),用户名admin是5长度的;所以代码中的 加密函数形如hash( SECRET, S E C R E T , message)的情况,其中 hash 最常见的就是 md5、hash1。我们可以在不知道$SECRET的情况下推算出另外一个匹配的值;也就是哈希长度扩展攻击。
那么目前我们知道的信息是:
1.secrect也就是密文的长度为15。
2.Md5(serect,”adminadmin”)的哈希。
3.用户名为admin。
整理下我们知道的数据:
1.Serrect的长度为15,再加上第一个admin就是20。
2.哈希值为571580b26c65f306376d4f64e53cb5c7。
3.data为第二个admin。
4.add数据为任意。
利用hashpump网上有教程得到一个新的getmein,抓包写入即可得到flag
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值