信息收集
签到?
Misc入门指南,请签收(提交示例Flag即可)
通过阅读PDF文件,可以发现示例Flag
提交示例Flag即可
coctf{We1c0me_t0_C0CTF}
签到!
你怎么知道看到的是文字还是背景呢?
根据题目描述应该可以想到文字和背景颜色相同的情况,所以我们将PDF中所有的文字复制出来查看,可以发现在Stego标题旁边隐藏的Flag
coctf{Wow0Wow_Y0uAreSteg0MonSter}
G3rling的三把钥匙
G3rling将Flag一分为三,并将它们藏匿在比赛平台中,只有那些善于发现的选手才能找到最终的答案
the last part:3936303239646163623231347d
Hint1:Flag在藏匿之时为了不过于明显均经过了编码或转化
Hint2:藏匿时进行的编码和转化在此次比赛中均有提及或使用
这一道题是参考XYCTF的彩蛋题,将信息隐藏在比赛平台中。
第一处在公告的比赛须知中
通过Base64解码得到第一段Flag
coctf{75c31bd6-
第二段在进入比赛的界面
这里可以发现全由01组成,常见的涉及类型其实不多,可分为:
- 01分别转黑白块组成二维码
- 摩斯电码
- 二进制转字符串
而这一题是需要使用二进制转字符串,得到第二段Flag
182e-4f54-9d7d-
第三段在题目描述中
十六进制转字符串得到第三段Flag
96029dacb214}
综上所述得到Flag
coctf{75c31bd6-182e-4f54-9d7d-96029dacb214}
这道题所涉及的编码以及进制转化均在《Misc入门指南》中有所提及
Kin's Blog
(T_T)看见周围人陆陆续续都有自己的博客,kin哥也是终于腾出时间搞了一个符合自己预期、简洁又不失个性的博客(Kin's Blog),里面藏有惊喜哦
(师傅们轻点喷,要骂就在评论区骂吧,真的在学web了,会好好学写好博客的,555)(T_T)
描述中隐晦提示评论区,所以查看评论区
得到Flag
coctf{w3lC0m3_T0_My_8L0G_4nd_1_H0p3_y0U’lL_f1nd_50m3TH1NG_1nt3r35T1Ng_1n_CRyPt0Gr4PhY.}
编码
每逢佳节Base轻
8*8=?
根据题目名称我们可以知道这个编码和base有关,再查看题目描述 8*8=64 ,可能会有一个名为base64的编码,通过搜索发现在线解码网站(这个一搜一大把,就不举例了)。
这里推荐一个解码的工具 Cyberchef ,优点是集成度高常见的编码都具备以及可离线使用
而且可以自动识别相关编码,复制进去可以看到出现了魔法棒,点击即可自动解码
得到Flag
coctf{8488982a-7648-46bc-94ff-bee8586b1534}
老师,我可太想进步了
砚上三五笔落墨鹧鸪啼,谁识曲中意断弦等你系……
题目描述没什么明确指向,查看密文,发现全由社会主义核心价值观组成,搜索社会主义核心价值观编码,发现在线解码网站,解码得到Flag
coctf{Daaay_Dayyyy_up_up!!!!!}
求佛
佛说,要有光,于是,便有了光
搜索佛曰相关编码,找到与佛论禅编码,可发现在线解码网站,解码得到flag
coctf{But_There_1s_n0_L19ht}
求佛论道编码有几个版本,遇到不能出的可以多试一下
BrainMonster
形或有异,实归一宗
这里的编码是BrainFuck,将一种编码的三种形式合在一起,实际上均是一种编码,对应了题目描述
在线网站或编码工具均可进行解码,以下三种均为BrainFuck
+++++ +++[- >++++ ++++< ]>+.<
..... ..... ..... .!?!! .?... ..... ..... ...?. ?!.?. .!.?.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook! Ook. Ook? Ook.
以下摘自wikipedia
Ook!是由David Morgan-Mar创建的一个玩笑 深奥的编程语言。它代表一长串琐碎的Brainfuck命令替换中的第一个(尽管很遗憾)不是最后一个。因此,它是TrivialBrainfuckSubstitution编程语言家族的成员。
分别将三行进行解码得到完整flag
coctf{The_Brain_1s_to0_Fuckkkk!!!!!}
如果你会说Fumo语,也好
琪露诺觉得会说Fumo语自己是个天才(ᗜᴗᗜ)
搜索Fumo语翻译器可以发现一个B站视频
发现在线网站,解码得到Flag
coctf{W0_241_Y3_BU_HU1_Funky_13}
门捷列夫
死去的化学元素周期表突然开始攻击我
Flag格式: coctf{[a-z]+}
Hint1:coctf{[a-z]+}表示{}内只含有小写英文字母
Hint2:{}中的小写字符串为一段完整通顺有意义的话
这一道题是原创的,所以搜索应该不会有相关的东西,先查看密文
碳氢铒镁碘硫钛铷钇碘硫镁铝镓碘碳
首先我们需要一张化学元素周期表
大抵的原理是,密文为化学元素的中文名,明文为化学元素符号的第一个大写字母。化学元素编码的原理是单表替换。
出题代码(看不懂没关系,GPT可以帮助你)
dic={
"A": "铝",
"B": "硼",
"C": "碳",
"D": "镝",
"E": "铒",
"F": "氟",
"G": "镓",
"H": "氢",
"I": "碘",
"K": "钾",
"L": "锂",
"M": "镁",
"N": "钠",
"O": "氧",
"P": "磷",
"R": "铷",
"S": "硫",
"T": "钛",
"U": "铀",
"V": "钒",
"W": "钨",
"Y": "钇",
"Z": "锌"
}
str="chemistryismagic"
result=""
for char in str:
if char.upper() in dic:
result += dic[char.upper()]
else:
result += char
print(result)
这道题主要的问题是很多同学看不懂正则表达式,所以给出了第一个Hint。另外一个问题是在不知道一个中文对应一个还是两个英文的前提下默认选择了后者,所以会出现很多奇奇怪怪的答案,所以给出了第二个Hint。解码得到Flag
coctf{chemistryismagic}
文件结构
猜猜我是谁
猜猜我是谁,猜对了才告诉你Flag
十六进制编辑器打开后,发现文件头为50 4B 03 04,更改后缀为zip,解压后得到Flag
coctf{0eef8986-2937-4a7a-852d-5afb2daf0398}
赛博神医
无法打开?看来好像是文件开头的数据有一些问题……
Zip的文件头应该为 50 4B 03 04 ,但是通过十六进制编辑器打开附件后发现文件头为50 4B 30 40 ,修改文件头即可正常打开压缩包,解压得到Flag
coctf{00e966df-2ce7-41aa-9a1a-42cd64e3305c}
隐写
Do you know HEX?
或许你需要先拥有一个好用的十六进制编辑器
用十六进制编辑器打开后在数据末尾发现Flag
也有一些同学将后缀改为了txt打开,也能得到残缺的Flag(少了个c)。其实这是因为txt打开后,c与前面的数据一同解码成了乱码,但是这样的思维值得表扬。在搜索途中肯定有很多同学找到了一些好用的工具以及CTFos中的一些工具,但是推荐先返璞归真,具体原理可以看《Misc入门指南》中关于工具使用的个人观点。
5t5
会赢吗?会赢的。
Hint1:2.5t5老师才不会给你Flag
这一题的考点是png宽高的修改,提示也隐晦的说明了这个思考方向。直接用系统自带的图片打开是没问题的,但是使用ImageGlass打开会提示CRC值错误
预期是通过模板修改高度为原来的两倍,这里先展示以下预期流程,先加载模板
通过模板可以更加直观的看到数据的类型以及作用
点击可以看到相应的数据对应的信息类型,在模板中直接修改高度。另一种做法是直接改十六进制数据
红框对应的分别为宽度,高度,CRC值的十六进制数据。有一种题型是更改了CRC值,需要通过宽高计算出CRC值,就需要用到这个知识点。不管用哪种方法都是可以的,修复完图片后在图片右下角得到Flag
coctf{5t5_Wi11_Win}
真理匿于图片之下
双兔傍地走,安能辨我是雄雌?
这一题的知识点是文件的分离,题目提示了文件的位置,描述提示了知识点。
打开010editor可以看到第一个JPG图片的文件头
(这里补充一下JPG的文件头是FF D8,文件尾为FF D9)
通过自带的搜索功能Ctrl+F搜索FF D9直接查看第一个文件的末尾,可以看到存在另外一张图片
下一步需要做的是提取,先Ctrl+N新建一个文档,将FFD9后的数据全部复制粘贴后另存为JPG图片,得到Flag
coctf{a2cc9c6e-e03b-4f7b-90e2-29ac162a0168}
Zero
哪里没有?这么多年了都是这个宽度
这道题考察的知识点是零宽字符,零宽字符的原理是通过一些不可见的Unicode符号进行隐写。类型很多,根据实际情况辨别是哪种零宽
用自带的记事本打开一些不可见的Unicode符号是不会显示的,但是可以注意到左下角的字符数量是有异常的
这里推荐Subline Text可以看到不可见的Unicode符号
可以看到有很多0x200c,这里使用在线网站进行零宽解密,需要注意的是需要选择对应的隐写符号类型
得到Flag
coctf{The_Iength_1s_t0O_I0n9}
一等情事
“在雪山饮雪 听过路风宣泄”
Hint1:用雪写下的文字自然难以察觉
Hint2:众里寻p千百度,蓦然回首,那p却在,题目描述处
灵感来源是《看看雪看看雪》减少了套娃环节,这一题的考点是snow隐写,具体安装流程可以百度搜索。
图片提供password,隐写在txt中,用指令进行解密,具体指令参数自行百度
得到Flag
coctf{Sn0w_T0gether_With_Y0u}
压缩包
零重祈愿
妄想症系列——ARCHPR教学局
G3rling是设置密码的糕手,他设置的密码没有人能破解出来。这一天,G3rling设置了一个长度为9的纯数字密码,心想这么长的密码肯定没人能破解出来……
这系列题目主要是ARCHPR的使用,四道题对应四个攻击类型
这一题知识点是暴力攻击,设置范围为所有数字,长度设置为9,得到密码。解压得到Flag。
一重加害
妄想症系列——ARCHPR教学局
“运气!都是阳寿玩家!!!”,G3rling很生气。这一次他将密码设置得更复杂,为了防止忘记,他把密码设置成自己的ID加上出生日期,想着这么长的密码一定不会有人能够破解出来.(例如出生日期为2000年1月1日,则密码为G3rling20000101)
这一题考点是掩码攻击,选择攻击类型为掩码,掩码设置为G3rling????????(一个问号代表一位未知,需要注意的是问号是英文问号不能使用中文问号),暴力范围所有数字,得到密码,解码得到Flag
二重变革
妄想症系列——ARCHPR教学局
“布什哥们!这密码你也能知道?”G3rling知道了自己的密码被破解后气不打一处来,室友Annms_知道后提了个主意:”你把常用的密码写在文档里不就行了……"。第二天,Annm_就把G3rling存密码的字典拷贝了一份出来
考察点是字典攻击,原理是选取字典文件中的每一个密码进行尝试,比较简单就不做演示了。
三重爱恋
妄想症系列——ARCHPR教学局
“呜呜呜QAQ 你不讲武德 只知道来骗 来偷袭……”G3rling知道真相后嚎啕大哭,泪水模糊了他的双眼,悲伤扰乱了他的思绪,设了一个自己都不知道的密码。设置完压缩包密码G3rling就钻进了他的小背几,只有我的床是爱我的,他如此想着便进入了梦乡……可谁也没想到他放在压缩包里的照片忘记了删除,和压缩包放在了一起……
这一题考察的是明文攻击,观察可以发现压缩包内的图片与附件内的图片一样(可以将图片压缩后进行CRC比对)。确定思路后开始进行明文爆破的准备。
首先将图片进行压缩,这里注意只有ZipCrypto存在明文攻击,AES不存在明文攻击。
压缩后在ARCHPR进行明文攻击,需要注意的是明文攻击分为两阶段,第一个阶段是搜索恢复密钥,第二个阶段是通过密钥恢复密码。我们在第一个阶段结束后就可以直接另存为一个无加密的压缩包了。
这是第一阶段
这是第二阶段
当我们完成第一阶段后直接点击停止,可保存无加密的压缩包
解压得到Flag
四重罪孽
妄想症系列——十六进制编辑器教学局
G3rling刚起床便听到自己昨晚的压缩包被破解了,万念俱灰,起床设置完最后一个压缩包后便退隐江湖……几年后,有人找到他问当年的压缩包密码是什么,G3rling一脸异或:“那个压缩包我没有设置密码呀?”。世人谁也不知道那天究竟发生了什么
考察点是伪加密,原理是通过在文件头的加密标志位做修改,进而再打开文件时识被别为加密压缩包。
一个 ZIP 文件由三个部分组成:
压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志
a.压缩源文件数据区:
50 4B 03 04:这是头文件标记(0x04034b50)
14 00:解压文件所需 pkware 版本
09 00:全局方式位标记(有无加密)
b.压缩源文件目录区:
50 4B 01 02:目录中文件文件头标记(0x02014b50)
1F 00:压缩使用的 pkware 版本
14 00:解压文件所需 pkware 版本
09 00:全局方式位标记(有无加密,这个更改这里进行伪加密,改为09 00打开就会提示有密码了)
识别真假加密
无加密
压缩源文件数据区的全局加密应当为00 00
且压缩源文件目录区的全局方式位标记应当为00 00
假加密
压缩源文件数据区的全局加密应当为00 00
且压缩源文件目录区的全局方式位标记应当为09 00
真加密
压缩源文件数据区的全局加密应当为09 00
且压缩源文件目录区的全局方式位标记应当为09 00
这里需要注意的是不只是0900,单数(0100 0300……)都可以被识别为加密
查看附件文件数据可以发现目录区的标志被更改,将其修改为0000即可解压压缩包。
二维码
XorCode
G3rling研究出了一种XorCode用来加密二维码,但是加密代码很多部分都被删除了,只留下了这几行代码
count = 0
while count < 5:
x = random.randint(0, 1)
if x == 0:
reverse_col_colors(pixels, random.randint(0, height // 10 - 1), height)
else:
reverse_row_colors(pixels, random.randint(0, width // 10 - 1), width)
count += 1
# 这段代码是一个循环,它执行了五次(由count < 5控制)。在每次循环中,它首先生成一个0到1之间的随机整数x(包括0和1),然后根据x的值来决定是反转某一列的颜色还是某一行的颜色。
你能解开XorCode的秘密吗?
这道题的考点是二维码的定时标志,为了防止看不懂代码还很贴心的弄上了注释,并且事实证明这道题并不需要代码基础
先看以下二维码的结构
可以看到定时标志为黑白相间的方块组成,并且四角的定位标志是固定的,根据这个可以准确找到是哪一行或者哪一列异或了,再次异或即可得到原来的二维码,扫描即可获得Flag
Bot
CRazyBot
群里的千世bot被邪恶的夏老师污染了,可是千世本身似乎并不知情,还在开心的和群里的sensei聊天,你能找到千世被什么东西污染了吗 (和模型本身无关哦)
ps:只要在要发出的对话前加上"/",千世就会回应你哦
也许仔细留意千世的每句话能注意到什么
这一题的考点是之前的零宽字符,将回答全部复制下来可以发现端倪
很明显的零宽隐写特征,用之前的网站解码,但是注意类型,即可获得Flag
coctf{CrazyB0t-Vme-5o-qiuqiunile}
后序
这是第一次以出题人以及筹备者的身份参加一次比赛。在筹备过程中,附件准备过程中以及比赛过程中遇到了很多没有遇到过的问题,但是好在都很顺利的解决了。
对于自己而言,通过这次比赛学到了很多,很高兴的是学弟学妹们对题目的评价没有想象中的那么差,也很高兴他们通过这次比赛学到了一些有趣的知识,即使以后可能不会同行,但也很高兴能在他们的大学生活中留下记忆深刻的一页。
对于下一届的学弟学妹来说,让我出乎意料的是一位没有基础的同学通过搜索和自学解决了Misc方向的所有题目,这样的学习能力不管以后在哪个领域都是需要的。也很高兴这一届中还有很多有相关基础的同学,如果有机会的话,也很希望能看见他们未来在CTF的赛场上大放异彩。
“燃烧自己!这样,即使你化为灰烬,人们也会从火光中找到你……”