• 攻防世界-web PHP2


    首先我们先将环境下载下来。

    进入之后 ,发现一句话

    Can you anthenticate to this website?大概就是在说,你能告诉我这个网站吗?
    嘶,先F12一手吧。啥也没有。然后扫描了一下目录。有一个index.php,然后在地址栏里输了一下,发现什么也没有。
    这就很郁闷了。然后我在index.php后加了个s,index.phps。然后就出效果了。
    这或许是源码泄露了。然后查看一手源码。
    这是php代码。那我来吧代码扔下来吧
    <?php
    if("admin"===$_GET[id]) {
      echo("<p>not allowed!</p>");
      exit();
    }
    $_GET[id] = urldecode($_GET[id]);
    if($_GET[id] == "admin")
    {
      echo "<p>Access granted!</p>";
      echo "<p>Key: xxxxxxx </p>";
    }
    ?>
    
    Can you anthenticate to this website?

    又要代码审计了。

    在这里我们先说一下===与==的区别

    ===是比较值和数据类型

    ==它是比较值,不比较数据类型

    例如:$a='123'   $b=123

    $a===$b    //False

    $a==$b    //True

    里面有一个urldecode,意思就是用于解码已编码的 URL 字符串,其原理就是把十六进制字符串转换为中文字符

    要求admin不能等于get传过来的值,又要求在get传过来的值经过urldecode后等于admin

    而且浏览器会对非ASCII字符自动进行一次urldecode,所以我们还得编码两次。

    所以pyload就为:

    http://220.249.52.133:51297/index.php?id=%2561dmin

    %2561解码就是%61   //第一次解码

    %61解码就为a     //第二次解码

    这样即可拿到flag

    Key: cyberpeace{292e9413104ba4842802367e5e9da7aa}

    最后再说一下index.phps吧

    phps其实就是php Source,根据意思也可以知道是php源代码。

    所以phps就是php的源代码文件。通常用来给用户查看php代码的。因为用户无法直接在Web浏览器查看php文件里的内容。然后需要用到phps文件来代替了。

  • 相关阅读:
    汇编 Hello Window [菜鸟]疑问
    得到指定进程所有窗口。显示 影藏 置顶。
    汇编,SendMessage和WM_SETTEXT
    C#: 字段和局部变量的作用域冲突
    C#: 给方法传递参数
    C#:类和结构
    C#: string 类型
    Copy files to a folder which need have Administrator approve and overwrite the existing same readonly files
    C#:构造函数
    C#:数组, 命名空间, Main()方法
  • 原文地址:https://www.cnblogs.com/awsole/p/13859085.html
Copyright © 2020-2023  润新知