这次有空的时候报名参加了一下三叶草的招新比赛,比赛时间是一个月,题目都挺基础挺好玩的,在这里记一下自己的题解同时把自己没有做的题目也跟着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");
}
}
?>

Syclover 第十次极客大挑战web题题解的更多相关文章

  1. 2020极客大挑战Web题

    前言 wp是以前写的,整理一下发上来. 不是很全. 2020 极客大挑战 WEB 1.sha1碰撞 题目 图片: 思路 题目说,换一种请求方式.于是换成post.得到一给含有代码的图片 图片: 分析该 ...

  2. 2016第七季极客大挑战Writeup

    第一次接触CTF,只会做杂项和一点点Web题--因为时间比较仓促,写的比较简略.以后再写下工具使用什么的. 纯新手,啥都不会.处于瑟瑟发抖的状态. 一.MISC 1.签到题 直接填入题目所给的SYC{ ...

  3. 三叶草极客大挑战2020 部分题目Writeup

    三叶草极客大挑战2020 部分题目Writeup Web Welcome 打开后状态码405,555555,然后看了一下报头存在请求错误,换成POST请求后,查看到源码 <?php error_ ...

  4. 极客大挑战2019 http

    极客大挑战 http referer 请求头 xff 1.查看源码,发现secret.php 2.提示要把来源改成Sycsecret.buuoj.cn,抓包,添加Referer Referer:htt ...

  5. BUUOJ [极客大挑战 2019]Secret File

    [极客大挑战 2019]Secret File 0X01考点 php的file伪协议读取文件 ?file=php://filter/convert.base64-encode/resource= 0X ...

  6. [原题复现][极客大挑战 2019]BuyFlag

    简介  原题复现:[极客大挑战 2019]BuyFlag  考察知识点:php函数特性(is_numeric().strcmp函数())  线上平台:https://buuoj.cn(北京联合大学公开 ...

  7. BUUCTF-[极客大挑战 2019]BabySQL(联合注入绕过waf)+[极客大挑战 2019]LoveSQL(联合注入)

    BUUCTF-[极客大挑战 2019]BabySQL(联合注入绕过waf) 记一道联合注入的题,这道题存在过滤. 经过手工的测试,网站会检验用户名和密码是否都存在,如果在用户名处插入注入语句,语句后面 ...

  8. web刷题记录 极客大挑战2019Knife upload buy a flag

    极客2019Knife webshell就是以asp.php.jsp或者cgi等网页文件形式存在的一种代码执行环境,主要用于网站管理.服务器管理.权限管理等操作.使用方法简单,只需上传一个代码文件,通 ...

  9. 第九届极客大挑战 部分WP

    CODE 和0xpoker分0day 百度 取石子游戏. https://blog.csdn.net/qq_33765907/article/details/51174524 已经说得很详细了,慢慢来 ...

随机推荐

  1. K-近邻算法kNN

    K-近邻算法(k-Nearest Neighbor,简称kNN)采用测量不同特征值之间的距离方法进行分类,是一种常用的监督学习方法,其工作机制很简单:给定测试样本,基于某种距离亮度找出训练集中与其靠近 ...

  2. 与pandas初相识

    前一阵子有个同事说,他看不懂从kibana上拉下来的日志,但是又想分析一些数据,感觉很头痛,每次都找开发给他整理一下,但是开发也很忙,要数据的频率也略高,那时候正好我跟这位需求方的项目,负责测试工作. ...

  3. 如何统计Ceph的RBD真实使用容量

    前言 ceph的rbd一直有个问题就是无法清楚的知道这个分配的空间里面到底使用了多少,这个在Jewel里面提供了一个新的接口去查询,对于老版本来说可能同样有这个需求,本篇将详细介绍如何解决这个问题 查 ...

  4. Vue.js自定义标签属性并获取属性,及绑定img的src属性的坑

    一.定义属性: 一般定义属性都是为了动态的去获取属性的值,或者动态的设置属性的值,如果想仅仅是设置一个普通的属性,直接在便签上设置属性即可,就像使用html的title.name等属性一样,如< ...

  5. Javaweb项目页面实时显示后台处理结果

    http://www.cnblogs.com/dong-xu/p/6701271.html 此博文甚好,项目参照博主代码可实现. 前端页面: <%@ page language="ja ...

  6. python学习-pickle模块(序列化)

    简介 1 python-pickle模块 该pickle模块实现了用于序列化和反序列化Python对象结构的二进制协议. "Pickling"是将Python对象层次结构转换为字节 ...

  7. 用FL Studio来给电子音乐混音的方法

    FL Studio也算是音乐人用的比较多的编曲.混音软件了,FL Studio的一大的特色就是电子音乐的制作.尤其是对混音的操作,混音是电音制作过程中一个非常重要的环节,非常重要. 混音是什么?混音的 ...

  8. 如何使用ABBYY FineReader 用户词典识别专业术语?

    ABBYY FineReader 15可以说是比较新的版本,在这个版本中能运用强大的光学字符识别技术对PDF文档扫描件.图像等文件进行OCR识别.在识别的过程中,会使用其内置的词典检查识别文字,以获得 ...

  9. ⭐NES.css推荐⭐

    今天发现一个有意思的CSS框架,叫NES.css 官网地址:https://nostalgic-css.github.io/NES.css/ gitHub地址:https://github.com/n ...

  10. MySQL全面瓦解13:系统函数相关

    概述 提到MySQL的系统函数,我们前面有使用过聚合函数,其实只是其中一小部分.MySQL提供很多功能强大.方便易用的函数,使用这些函数,可以极大地提高用户对于数据库的管理效率,并更加灵活地满足不同用 ...