打开题,没思路,抓包吧。
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扩展的。