实验吧ctf-web-让我进去(Hash长度扩展攻击)

解题链接:http://ctf5.shiyanbar.com/web/kzhan.php

 

抓包:

 

尝试修改sourece值为1时,源码出现,如图:

$flag = "XXXXXXXXXXXXXXXXXXXXXXX";
$secret = "XXXXXXXXXXXXXXX"; // This secret is 15 characters long for security!

$username = $_POST["username"];
$password = $_POST["password"];

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.");
        }
    } else {
        die ("You are not an admin! LEAVE.");
    }
}

setcookie("sample-hash", md5($secret . urldecode("admin" . "admin")), time() + (60 * 60 * 24 * 7));

if (empty($_COOKIE["source"])) {
    setcookie("source", 0, time() + (60 * 60 * 24 * 7));
} else {
    if ($_COOKIE["source"] != 0) {
        echo ""; // This source code is outputted here
    }
}

分析可知,用户名为admin,密码不能为admin,且cookie中getmein的值需要和md5($secret.urldecode(username . password)相等。才能通过验证。

以下为有用信息:

  1. secrect也就是密文的长度为15。
  2. md5($serect,”adminadmin”)的哈希。
  3. 用户名为admin。

整理下我们知道的数据:

  1. secret的长度为15,再加上第一个admin就是20。
  2. 哈希值为571580b26c65f306376d4f64e53cb5c7。
  3. data为第二个admin。
  4. add数据为任意。

 

这时候我们就可以使用HashPump了。

HashPump的安装及使用方法

把内容中值反转一下,把\x替换为%:

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%00dyw
4a159f3519478f255d7b95df3cb036f8

将其输入到cookie对应的参数getmein中,获得flag:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烟敛寒林o

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值