实验吧_天下武功唯快不破&让我进去(哈希长度拓展攻击)

天下武功唯快不破

第一反应就去抓包,看到返回包的header中有FLAG的值,base64解码后得到下图所示

这就要求我们在请求头中post相应key的值,我直接在burp中尝试了多次都没有用,想起来这道题讲的应该是快,所以果断拿出python跑一跑

1 import requests
2 import base64
3 
4 url = 'http://ctf5.shiyanbar.com/web/10/10.php'
5 r = requests.get(url).headers['FLAG']
6 key = base64.b64decode(r).decode().split(':')[1]
7 flag = {'key':key}
8 print(flag)
9 print(requests.post(url, data = flag).text)

可直接得到flag

让我进去

查看源码并没有发现什么提示,随便输入账号密码看看,看到cookie有个两个醒目的参数

把source改成1试了试,果然出现了源码

 1 $flag = "XXXXXXXXXXXXXXXXXXXXXXX";
 2 $secret = "XXXXXXXXXXXXXXX"; // This secret is 15 characters long for security!
 3 
 4 $username = $_POST["username"];
 5 $password = $_POST["password"];
 6 
 7 if (!empty($_COOKIE["getmein"])) {
 8     if (urldecode($username) === "admin" && urldecode($password) != "admin") {
 9         if ($COOKIE["getmein"] === md5($secret . urldecode($username . $password))) {
10             echo "Congratulations! You are a registered user.
";
11             die ("The flag is ". $flag);
12         }
13         else {
14             die ("Your cookies don't match up! STOP HACKING THIS SITE.");
15         }
16     }
17     else {
18         die ("You are not an admin! LEAVE.");
19     }
20 }
21 
22 setcookie("sample-hash", md5($secret . urldecode("admin" . "admin")), time() + (60 * 60 * 24 * 7));
23 
24 if (empty($_COOKIE["source"])) {
25     setcookie("source", 0, time() + (60 * 60 * 24 * 7));
26 }
27 else {
28     if ($_COOKIE["source"] != 0) {
29         echo ""; // This source code is outputted here
30     }
31 }

这里可以看到三个获取flag前的判断语句:

1.username为damin

2.password不为admin

3.cookie中的getmein参数的值等于md5($secret . urldecode($username . $password))

一脸懵逼,哭着去找wp。

哈希长度扩展攻击 (瑟瑟发抖 听都没听过)

贴一下大佬的相关解释,研究了一整晚还是懵懵懂懂的

hash哈希长度扩展攻击解析(记录一下,保证不忘)

实验吧-让我进去【salt加密 哈希长度拓展攻击】

先放着吧╮(๑•́ ₃•̀๑)╭

原文地址:https://www.cnblogs.com/Ragd0ll/p/8649320.html