实验吧:让我进去

打开题,没思路,抓包吧。

cookie里边有一个source=0,改为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
}
}

之后就不会了,过了很长时间,才知道这是哈希扩展长度。

看了很多博客,也没太理解这个东西是啥,讲不了这个原理,智商问题。。。。唉!!!

可以参考这篇文章:https://www.cnblogs.com/pcat/p/5478509.html

不过大概知道什么时候用这个。

例如:md5($a.$b)的值已知,并且$a的长度也知道。

使用工具hashpump,参考上面网址安装。

Input Signature:填写hash值。

Input Data:

Input Key Length:20(因为要得到密码所以 长度是原来的15加上用户名admin的5,一共是20)

Input Data to Add:随便添加

这行的md5值  就是getmein的值

底下的都是密码,但是必须经过urlencode。

用hackBar构造 得出flag。

写的比较烂,还不是很懂哈希扩展长度,继续学习,写一篇讲解hash扩展的。

猜你喜欢

转载自www.cnblogs.com/whitehawk/p/9902543.html