zoukankan      html  css  js  c++  java
  • 攻防世界-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文件来代替了。

  • 相关阅读:
    一篇文章搞懂密码学基础及SSL/TLS协议
    如何编写一个多进程性能测试程序
    自动化测试用例编写日志总结(一)
    Python lambda匿名函数
    Python map() 函数
    python中sorted函数的理解(对list列表排序,对dict字典排序)
    python list列表冒泡排序
    range的用法
    同时安装python2和python3是使用pip的方法:
    cmd输出文件树结构
  • 原文地址:https://www.cnblogs.com/awsole/p/13859085.html
Copyright © 2011-2022 走看看