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) == %)

  • 相关阅读:
    tyvj[1087]sumsets
    tyvj[1089]smrtfun
    [bzoj3289]Mato的文件管理
    luogu[2093]零件分组
    luogu[1135]奇怪的电梯
    codevs[1300]文件排版
    luogu[1140]相似基因
    动态规划练习题 胖男孩
    动态规划练习题 汇率
    vijos[1355]车队过桥问题
  • 原文地址:https://www.cnblogs.com/R3col/p/12613950.html
Copyright © 2011-2022 走看看