zoukankan      html  css  js  c++  java
  • XCTF-PHP2

    PHP2

    进来就一句话

    Can you anthenticate to this website?

    直接上御剑扫了一下目录,什么都没得

    而且GET/POST没有参数,看了cookie也没有参数,fuzz了一会儿,没有结果 = =

    于是猜测是源码泄露,emmm,尝试了一遍常用的备份文件后缀无果

    去看了wp,用的是phps

    phps类型通常用来给用户查看源代码

    拿到源码

    <?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?
    

    要满足两个要求

    • $_GET[id] !=== "admin",===要求对比的字符串必须是相同类型,那么需要类型不是字符串,或者内容不是admin,传入类型一般都是字符串
    • urldecode之后 $_GET[id] == admin,(==会把变量转换为相同类型,再比较)

    想到了warm_up的里考的知识点,服务器接收到参数后会自动进行一次urldecode,而后才是应用的数据处理

    这里还有个知识点,所有的ascii字符都可以用%xx来代替传入

    所以对admin进行两次url编码即可(全部/部分都可),URL编码表

    payload:%2561dmin(urldecode(%25) == %)

  • 相关阅读:
    Pycharm中直接安装第三方库
    http协议与https协议
    调用第三方支付--支付宝
    探索性测试 之 极速测试
    常见HTTP状态码
    git: windows git ssh keys生成
    Jmeter实现MD5加密
    算法 ----- 排序NB二人组 堆排序 归并排序
    web 应用 及 补充
    Python Django框架 补充
  • 原文地址:https://www.cnblogs.com/R3col/p/12613950.html
Copyright © 2011-2022 走看看