天下武功唯快不破
第一反应就去抓包,看到返回包的header中有FLAG的值,base64解码后得到下图所示
这就要求我们在请求头中post相应key的值,我直接在burp中尝试了多次都没有用,想起来这道题讲的应该是快,所以果断拿出python跑一跑
import requests
import base64 url = 'http://ctf5.shiyanbar.com/web/10/10.php'
r = requests.get(url).headers['FLAG']
key = base64.b64decode(r).decode().split(':')[1]
flag = {'key':key}
print(flag)
print(requests.post(url, data = flag).text)
可直接得到flag
让我进去
查看源码并没有发现什么提示,随便输入账号密码看看,看到cookie有个两个醒目的参数
把source改成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
}
}
这里可以看到三个获取flag前的判断语句:
1.username为damin
2.password不为admin
3.cookie中的getmein参数的值等于md5($secret . urldecode($username . $password))
一脸懵逼,哭着去找wp。
哈希长度扩展攻击 (瑟瑟发抖 听都没听过)
贴一下大佬的相关解释,研究了一整晚还是懵懵懂懂的
hash哈希长度扩展攻击解析(记录一下,保证不忘)
实验吧-让我进去【salt加密 哈希长度拓展攻击】
先放着吧╮(๑•́ ₃•̀๑)╭