2019年CTF5月比赛记录(一):ISCC_2019线上赛部分题目writeup

2023-12-27 23:10

本文主要是介绍2019年CTF5月比赛记录(一):ISCC_2019线上赛部分题目writeup,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ISCC战线拉得蛮长的,从5月1号一直干到25号。我之前也没参加过ISCC,就第一次参加做题情况来看,除了第一天结束后排名在前100,之后就再也没往上走过,尼玛一直掉啊,每天退步一点点,垂直下降,心疼啊。我一个web手竟然要靠做Misc上分?
就参赛的选手来讲,直观感觉就是HN-大佬真多啊,前面有好多诶??;就题目而言,web前四道题好水啊,不是原题就是改编题,Misc纯脑洞,不解释。

强网杯前练练手

比赛时间:2019年5月1日至2019年5月25日

Writeup

一、Web:
1.web1:
这题改编来的:
在这里插入图片描述
直接代码审计,需要GET传两个参数,一个value,一个password。
先看value,通过后面的代码不难看出,value是数组赋值,而且value[$i]的ascii值不能在32到127之间,然后经过chr()把value传到username里,从而进行username的比较,需要使username=‘w3lc0me_To_ISCC2019’,这样看的话矛盾出现了,因为前面的条件限制了我们直接对value赋username所对应的值,既然这样,看看能不能用别的方法。注意到chr()函数在转换时会自动取模256,所以我们只需在相对应的ascii码上加上256就可以。
再看password,主要解决intval()的问题就行了,如果我们传入16进制的数值,intval(password)在这里会直接返回0,但是intval(password+1)在转换时会将16进制数先转换成10进制数再加1,然后输出。
最后构造payload得到flag:
在这里插入图片描述
2.web2:
这题考的算是burp的intruder和图形验证码,但是最后是可以试出来的。而且最后的密码是"996"不得不说,还是紧贴时政的?。
在这里插入图片描述
三位数字密码直接000-999,关键就是验证码。这道题是图片的,我曾经在蓝鲸CTF打卡练习场里做过另一个含验证码爆破的,但那个比这个简单,直接在burp里设置宏。对于这道题,这是个图片的,所以直接上工具PKAV,最后得到flag:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.web3:
这题考的二次注入,是sql-libs上的题目,应该是没怎么改动,比较讨厌的是大佬们把能注册的用户名都注册了一遍?,后来实在没办法注册了个"admin ‘#",然后就是常规的修改密码,最后再用admin登陆拿到flag:
在这里插入图片描述
在这里插入图片描述
4.web4:
这道题其实也是个改编题,来自国外某CTF的一个php审计题目。打开后一段代码,开始审计:
在这里插入图片描述
这尼玛有点秀啊,cxk都出来了,怀着一刻好奇心看一下:
在这里插入图片描述
呵呵呵,我尼玛动态图:
在这里插入图片描述
好了回归正题,开始代码审计,需要GET传参,先是action,直接赋值"auth",比较有意思的是下面的内容,他是想让我们sha256的值相等,一开觉得有点意思,后来又看了看前面的代码,发现一个东西"parse_str()“这是一个变量覆盖的函数,可以查php手册找到,我在别的地方查的手册:
在这里插入图片描述
所以一切就变得简单了,我们只要GET传一个key值,然后再传key的sha256值,进行覆盖,我这里取得0,直接就可以得到flag。
在这里插入图片描述
5.web5、6:(未完成)
web6这道题的话先注册一个账号,注册这就卡了一会,一开始注册的几个用户名都会显示"false”:
在这里插入图片描述
在这里插入图片描述
然后继续,找到一段代码,和相关的源码:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后就没然后了,等着看师傅们的wp了
web5应该是注入,但是没找到登陆口,一开始的话修改一下User-Agent,里面加上一个Union.373,提示输入用户名,密码。这一部分应该是要有注入的了,然后同理,坐等…
二、MISC:
MISC的题目看脑洞了,只要脑洞大,就能拿flag,但是flag的提交格式真是千变万化??。
1.隐藏的信息:
打开文件后是一串进制数,先观察一下,就我当时想的就是应该是8进制,因为没有出现7以上的数,那么直接找对应的ASCII码:
在这里插入图片描述
很明显是一段base64编码,直接解码:
在这里插入图片描述
2.倒立屋:
这题我尼玛真是神了,先给一张图,直接放stegsolve里分析,然后一个一个试,一开始看到了一个:
在这里插入图片描述
我一开始以为没个什么卵用,继续找,找了好长一段时间,啥也没找到,什么方法都试过了,最后又回到这个地方,那就试试这个呗,正着输没用,那就反着来,最后尼玛竟然真是flag,"9102_cCsI"我勒个擦,真是服了。??
3.Welcome:
这题也还好吧,打开后又是一个文本文件,一堆繁体字,还是蛮有规律的繁体字,当时想的是’01’编码或是’—.'之类的,然后就是一个一个试。
先是01,根据他的分组,有两个情况,第一个是以逃开始的文字段编为1;长开头的编为0。另外一个是逃开始的位0,长开头的为1。无论怎样都是8位编为1组,最后在第二组里二进制转码得到flag:
在这里插入图片描述
在这里插入图片描述
4.最危险的地方就是最安全的地方:
这个也是先打开发现图片文件损坏,没办法看,notepad打开看了一下,里面还有其他的隐藏图片,打开foremost分离出来:
在这里插入图片描述
看了一下全部都是二维码,批量解码:
在这里插入图片描述
在这里插入图片描述
第50个png有问题,winhex看一眼得到flag;
在这里插入图片描述
5.无法运行的exe:
打开后一个exe文件,无法运行,惯例notepad看一眼,是一堆编码,姑且当作base64:
在这里插入图片描述
然后转一下:
在这里插入图片描述
发现出来个png,先把转换出来的转换到本地,后缀名改为png,发现仍然打不开,还是winhex走一波,这里比较靠脑洞的就是要修改一个值"00"改为"0A",再保存到本地,出现了二维码:
在这里插入图片描述
解码即可得到flag:
在这里插入图片描述
6.High起来!:
这个也是一张图片文件打不开,老套路winhex看一眼,发现文件头不是png的,改一下保存出现二维码,扫一下:
在这里插入图片描述
在这里插入图片描述
当铺密码解一下:
在这里插入图片描述
我一开始以为这就是,后来又想了一下,这题应该还有音频,暂且放着不管。foremost继续分离文件,发现"01.mp3"文件:
在这里插入图片描述
然后听了会,嗯还行,继续放到mp3stego下,我一开始没用过这软件,因为之前没遇到过音频隐写,CSDN上搜了一下操作流程,发现有个-P password,第一次没用,啥玩意也没出来,后来想了一下欸,之前的数字好像可以用上了,开始操作:
在这里插入图片描述
最后出来txt文件,打开直接转ASCII码,得到flag:
在这里插入图片描述
7.他们能在一起吗?:
直接一个二维码,扫码得到一串base64文件,解码:
在这里插入图片描述
url再解一下:
在这里插入图片描述
出来的东西先留着,因为二维码里还有东西,同样foremost分离出来:
在这里插入图片描述
在zip文件夹里有我们想要的东西,但是需要输入密码,直接用前面的那个,放进去得到flag:
在这里插入图片描述
8.Aesop’s secret:
打开是一个gif动态图,直接按帧数分离:
在这里插入图片描述
一开始以为是个二维码拼接起来发现不是,是个ISCC,还是不知道有啥用,那就stegsolve看一下,发现一段代码:
在这里插入图片描述
一开始想着是不是base64,试了一下不是,后来又想了一下应该是有密码之类的,得用上"ISCC",结合题目名称,确定是AES,解码开始,连结两次码,得到flag:
在这里插入图片描述
在这里插入图片描述
9.Keyes’ secret:
这题蛮狠的,考的键盘编码,看完眼睛都快废掉了,给了一大长串密码,最后的落脚点就是在"{WSXIUYHNBVTRFVBTRFVBQWERTYQAZSCEWSXCDEEFVTYHNMKJTGBNMJUYGRDXCVBMNBVCDRTGHUWSXCFEQWERTYTRFVBWSXNBVCXSWERFRFVGYHNWSXCDEMNBVCDRTGHU}"上面,按照我自己的理解尝试了许多次,可能下面的也存在错的,但是最后提交对了?
1.“WSX”:I; 2.“IUYHNBV”:S; 3.“TRFVB”:C; 4.与3相同; 5."QWERTY"对应的是空格; 6.“QAZSCE”:K; 7.“WSXCDE”:E; 8.“EFVT”:Y; 9.“YHNMKJ+GRDXCVB”:B; 10.“TGBNMJUY”: O; 11.“MNBVCDRTGHU”:R; 12.“WSXCFE”: D; 13.同5; 14.与3相同:C; 15.与1相同:I; 16.“NBVCXSWERF”: P; 17.“RFVGYHN”:H; 18.与7相同:E; 19.与11相同:R;
总结一下{ISCC KEYBOARD CIPHER},提交的格式我记不清了。

这篇关于2019年CTF5月比赛记录(一):ISCC_2019线上赛部分题目writeup的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/544547

相关文章

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

poj 2976 分数规划二分贪心(部分对总体的贡献度) poj 3111

poj 2976: 题意: 在n场考试中,每场考试共有b题,答对的题目有a题。 允许去掉k场考试,求能达到的最高正确率是多少。 解析: 假设已知准确率为x,则每场考试对于准确率的贡献值为: a - b * x,将贡献值大的排序排在前面舍弃掉后k个。 然后二分x就行了。 代码: #include <iostream>#include <cstdio>#incl

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件

题目1254:N皇后问题

题目1254:N皇后问题 时间限制:1 秒 内存限制:128 兆 特殊判题:否 题目描述: N皇后问题,即在N*N的方格棋盘内放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在同一斜线上。因为皇后可以直走,横走和斜走如下图)。 你的任务是,对于给定的N,求出有多少种合法的放置方法。输出N皇后问题所有不同的摆放情况个数。 输入

题目1380:lucky number

题目1380:lucky number 时间限制:3 秒 内存限制:3 兆 特殊判题:否 提交:2839 解决:300 题目描述: 每个人有自己的lucky number,小A也一样。不过他的lucky number定义不一样。他认为一个序列中某些数出现的次数为n的话,都是他的lucky number。但是,现在这个序列很大,他无法快速找到所有lucky number。既然

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

学习记录:js算法(二十八):删除排序链表中的重复元素、删除排序链表中的重复元素II

文章目录 删除排序链表中的重复元素我的思路解法一:循环解法二:递归 网上思路 删除排序链表中的重复元素 II我的思路网上思路 总结 删除排序链表中的重复元素 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 图一 图二 示例 1:(图一)输入:head = [1,1,2]输出:[1,2]示例 2:(图

笔记整理—内核!启动!—kernel部分(2)从汇编阶段到start_kernel

kernel起始与ENTRY(stext),和uboot一样,都是从汇编阶段开始的,因为对于kernel而言,还没进行栈的维护,所以无法使用c语言。_HEAD定义了后面代码属于段名为.head .text的段。         内核起始部分代码被解压代码调用,前面关于uboot的文章中有提到过(eg:zImage)。uboot启动是无条件的,只要代码的位置对,上电就工作,kern

【408数据结构】散列 (哈希)知识点集合复习考点题目

苏泽  “弃工从研”的路上很孤独,于是我记下了些许笔记相伴,希望能够帮助到大家    知识点 1. 散列查找 散列查找是一种高效的查找方法,它通过散列函数将关键字映射到数组的一个位置,从而实现快速查找。这种方法的时间复杂度平均为(

perl的学习记录——仿真regression

1 记录的背景 之前只知道有这个强大语言的存在,但一直侥幸自己应该不会用到它,所以一直没有开始学习。然而人生这么长,怎就确定自己不会用到呢? 这次要搭建一个可以自动跑完所有case并且打印每个case的pass信息到指定的文件中。从而减轻手动跑仿真,手动查看log信息的重复无效低质量的操作。下面简单记录下自己的思路并贴出自己的代码,方便自己以后使用和修正。 2 思路整理 作为一个IC d