• Syclover 第十次极客大挑战web题题解


    这次有空的时候报名参加了一下三叶草的招新比赛,比赛时间是一个月,题目都挺基础挺好玩的,在这里记一下自己的题解同时把自己没有做的题目也跟着writeup做一遍

    第一题:cl4y:打比赛前先撸一只猫!: 猫猫陪我打ctf!

     到了页面之后审查元素。发现源代码里面有提示:

     这里我们需要使用get请求让cat这个变量等于dog,就可以得到flag

    第二题:cl4y:你看见过我的菜刀么

     进入页面之后很明显是一句话木马,白送的flag

    菜刀使用Syc密码连接

     在根目录下有flag这个文件夹,里面的flag.txt就是flag

    第三题:Lamber:BurpSuiiiiiit!!!: 拿起你的burp,开始战斗吧

    提示了是使用burpsuite,下载了分享的文件之后打开是一个jar包,想起来burpsuite有增加扩展的功能,导入这个Extender包

    也就是在burpsuite的extender的extensions选项里面选择Add

     添加了之后有一个output

     并且提示我们去看error page

    里面就有:

    OK, I'll give you the flag now. Here is your flag Syc{BurpExtender_Are_guns_F0r_Hack3rs}

    当然,下面还有一句base64编码的话,解码后如下:The first person to send a screenshot of the egg to Lamber, who will invite him to drink milk tea. Ps:Color Egg in Decompiled Source Code

    第一个发现彩蛋的人Lamber会请他喝奶茶

    这个彩蛋是在jar的反编译源码里面的

    我之前做这个题的时候找到了彩蛋,这里就不赘述了

    第四题:Ayrain:性感潇文清,在线算卦:动作快点才能算到好卦。

     随便输入admin/admin

    页面上返回:

    Ding!你的算卦结果就在这儿啦!快来看!uploads/8d425a9a73db63b6b5def8acbf5da5d8c842d859/d033e22ae348aeb5660fc2140aec35850c4da997

    可以看出来返回了算卦的结果,接着我们审查元素,源代码里面有php源代码泄露:

     提示了我们使用条件竞争。可以看出来我们用get方法传递给 u 和  p,$content里面储存着我们想要的flag,然后将$content 储存在$savepath这个路径里面,页面返回这个储存的路径,在usleep(100000)之后,$content里面的内容被改成"you are too slow" 储存的数据被改变,再次去访问就不会得到正确的结果了

    所以我们要做的就是,在unsleep(100000)这段时间里面,我们需要访问到返回这个路径的文件内容

    因为它每次都是使用sha1来对传递的u来储存,所以每次的储存路径实际都是相同的,我们使用burpsuite开两个线程来访问,一个不断传递相同的u,一个不断访问u所对应的路径

    如图:

     获取flag

     另外一个思路是编写python的脚本进行多线程爆破

    第五题:cl4y:Easysql: 最近我做了一个小网站,我把flag放在里面了,不过我没有把登陆密码告诉任何人,所以你们是拿不到flag的!

     题目提示我们要登录网站,加上这里是sql注入,我们尝试使用万能密码

     登录成功,查看到flag

     有空在更

    <?php
    highlight_file(__FILE__);
    error_reporting(E_ALL);
    ini_set("max_execution_time", "60");
    empty($_GET["url"]) && die();
    $password = "If I knew where I would die, I would never go there.";
    $arr = explode(' ', $password);function startsWith($haystack, $needle)
    {
    $length = strlen($needle);
    return (substr($haystack, 0, $length) === $needle);
    }
    $url = $_GET["url"];
    if (!startsWith($url,"http://"))
    {
    die("Not allow !");
    }
    for($i=0; $i<count($arr); $i++)
    {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 3);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
    $output = curl_exec($ch);
    curl_close($ch);
    if ($output === $arr[$i])
    {
    if($i == sizeof($arr))
    {
    echo "Congratulations. Flag is
    SYC{********************************}";
    }
    else
    {
    continue;
    }
    }
    else
    {
    die("password is wrong");
    }
    }
    ?>
  • 相关阅读:
    虚拟机更新为阿里数据源
    linux设置开机同步时间
    linux免密码登录
    Google 开源的 Python 命令行库:深入 fire(一)
    统计各个分类和标签下的文章数
    缩写名词解释
    Google 开源的 Python 命令行库:初探 fire
    稳定易用的 Django 分页库,完善分页功能
    Python 命令行之旅:使用 click 实现 git 命令
    Python 库打包分发、setup.py 编写、混合 C 扩展打包的简易指南(转载)
  • 原文地址:https://www.cnblogs.com/Cl0ud/p/11876018.html
Copyright © 2020-2023  润新知