zoukankan      html  css  js  c++  java
  • 实验吧:让我进去

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

    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. ";
    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扩展的。

  • 相关阅读:
    mapcontrol的鼠标样式
    SQL SERVER数据类型与C#数据类型对照表
    正则表达式基元
    WPF中UserControl和DataTemplate
    [转]SQL三种获取自增长的ID方法
    [转]SQL Server 存储过程 一些常用用法(事物、异常捕捉、循环)
    Learn JavaScript(面向对象的程序设计01)
    CLR:基元类型、引用类型和值类型
    grid layout 相关代码
    css关于position的几个值
  • 原文地址:https://www.cnblogs.com/whitehawk/p/9902543.html
Copyright © 2011-2022 走看看