攻防世界Crypto1-4题学习笔记
第一题:base64 NO.GFSJ0522
题目描述:
元宵节灯谜是一种古老的传统民间观灯猜谜的习俗。 因为谜语能启迪智慧又饶有兴趣,灯谜增添节日气氛,是一项很有趣的活动。 你也很喜欢这个游戏,这不,今年元宵节,心里有个黑客梦的你,约上你青梅竹马的好伙伴小鱼, 来到了cyberpeace的攻防世界猜谜大会,也想着一展身手。
你们一起来到了小孩子叽叽喳喳吵吵闹闹的地方,你俩抬头一看,上面的大红灯笼上写着一些奇奇怪怪的 字符串,小鱼正纳闷呢,你神秘一笑,我知道这是什么了。
题目附件:
1 | Y3liZXJwZWFjZXtXZWxjb21lX3RvX25ld19Xb3JsZCF9 |
由题目可知,这题和Base64编码相关,让我们来了解一下Base64编码的一般用途及特征:
Base64编码通常用于将给定字符串转换为可打印字符形式。,以下为base64编码后字符的特点:
可打印字符:Base64编码将二进制数据转换为一组可打印字符,包括字母(A-Z,a-z)、数字(0-9)和一些特殊字符(如”+”和”/“),这样的编码结果可以在文本环境中进行传输和存储。
字符集:Base64编码使用64个字符作为基本字符集,因此得名Base64。这个字符集是由标准ASCII字符集中的一些字符组成的,可以确保编码结果在不同系统中的可互操作性。
固定长度增加:Base64编码会将原始数据的长度扩展为原始数据的1.25(4/3)倍。例如,3个字节的数据编码后将变为4个字符,6个字节的数据编码后将变为8个字符。这种长度扩展是固定的,因此编码后的数据长度总是4的倍数。
编码而非加密:Base64是一种编码而非加密方法,它的目的是将给定字符串数据转换为可打印字符形式,而不是隐藏或保护数据。Base64编码是可逆的,也就是说可以将编码后的数据解码还原为原始数据。
以上,是base64编码的特征,此时我们只需要在线找一个Base64解码工具,然后将附件中的字符串输进去后解码,即可得到flag。
1 | cyberpeace{Welcome_to_new_World!} |
第二题:Caesar NO.GFSJ0523
题目描述:
你成功的解出了来了灯谜,小鱼一脸的意想不到“没想到你懂得这么多啊!” 你心里面有点小得意,“那可不是,论学习我没你成绩好轮别的我知道的可不比你少,走我们去看看下一个” 你们继续走,看到前面也是热热闹闹的,同样的大红灯笼高高挂起,旁边呢好多人叽叽喳喳说个不停。你一看 大灯笼,上面还是一对字符,你正冥思苦想呢,小鱼神秘一笑,对你说道,我知道这个的答案是什么了
题目附件:
1 | oknqdbqmoq{kag_tmhq_xqmdzqp_omqemd_qzodkbfuaz} |
由题目可知,这题和凯撒有关,并且我们做的是加密方向的题,那么我们就可以想到凯撒密码,让我来了解一下凯撒密码及其特征:
凯撒密码是一种简单的替换密码,它将明文中的每个字母按照一个固定的偏移量进行移动,从而得到密文。以下是凯撒密码加密后字符串的一些特征:
- 字母位移:凯撒密码将每个字母按照一个固定的偏移量进行移动。通常情况下,偏移量为正数,表示向右移动,偏移量为负数,则表示向左移动。例如,偏移量为1时,明文中的字母A会被加密为B,字母B会被加密为C,以此类推。偏移量通常为1-26
- 字母模式保持:凯撒密码加密后,字母的相对顺序和出现频率会保持不变。如果在明文中某个字母的出现频率较高,那么在密文中对应的字母也会具有较高的频率。
- 周期性特征:凯撒密码具有周期性特征,因为字母表是一个循环结构。偏移量为26的倍数时,加密的结果与明文相同,即加密和解密是相同的操作。
- 仅加密字母:凯撒密码只对字母进行替换,对于非字母字符(如数字、标点符号等)会保持不变。
由以上特征可知,凯撒密码非常容易被穷举破解,我们只需在线找一个凯撒密码加密/解密工具 ,将密文输进去,偏移量一个一个试,由于有用的偏移量只有1-26,因此全部试完也不需要太多时间,在经过一番尝试后,得到以下结果:
偏移量为12,flag如下
1 | cyberpeace{you_have_learned_caesar_encryption} |
第三题:Morse NO.GFSJ0524
题目描述:
小鱼得意的瞟了你一眼,神神气气的拿走了答对谜语的奖励,你心里暗暗较劲 想着下一个谜题一定要比小鱼更快的解出来。不知不觉你们走到了下一个谜题的地方,这个地方有些奇怪。 上面没什么提示信息,只是刻着一些0和1,感觉有着一些奇怪的规律,你觉得有些熟悉,但是就是想不起来 这些01代表着什么意思。一旁的小鱼看你眉头紧锁的样子,扑哧一笑,对你讲“不好意思我又猜到答案了。”(flag格式为cyberpeace{xxxxxxxxxx},均为小写)
题目附件:
1 | 11 111 010 000 0 1010 111 100 0 00 000 000 111 00 10 1 0 010 0 000 1 00 10 110 |
由题目可知,这题摩尔斯有关,由此可想到摩尔斯密码,让我们来了解一下摩尔斯密码及其特征:
摩尔斯密码是一种使用短音.
和长音-
来表示字母、数字和标点符号的编码系统。以下是摩尔斯密码的一些特征:
- 点划组合:摩尔斯密码使用点
·
和划—
组合来表示不同的字符。每个字符由一系列点和划的组合表示,例如字母”E”表示为一个点·
,字母”T”表示为一个划—
。 - 长短变化:摩尔斯密码中,点
·
和划—
的长度不同,点的长度较短,划的长度较长。这种长度的变化是为了方便在听觉传输中的识别和区分。 - 字符间间隔:摩尔斯密码中,字符之间用短间隔表示(通常是一个点的时间),而不同单词之间用长间隔表示(通常是三个点的时间)。这样的间隔用于区分不同的字符和单词。
- 编码而非加密:摩尔斯密码是一种编码而非加密方法,它将字符转换为对应的摩尔斯码。摩尔斯密码是可逆的,也就是说可以根据摩尔斯码还原为原始字符。
- 字符集的限制:摩尔斯密码最初设计用于传输英文字符,因此它的字符集受限于英文字母、数字和一些标点符号。虽然摩尔斯码可以扩展到其他字符集,但在实际应用中,常见的扩展字符通常使用拼音字母的变体。
由以上特征可知,摩尔斯密码使用点·
和划—
组合来表示不同的字符。在此题中,仅仅只是将点·
和划—
换成了1和0(点.
为1,划—
为0),因此我们只需要在线找一个摩斯密码翻译器,将题目附件中的内容输入进去并解码,即可得到明文
1 | MORSECODEISSOINTERESTING |
将解密出来的内容换成小写并放入cyberpeace{}中,即可得到flag
1 | cyberpeace{morsecodeissointersting} |
第四题:Broadcast NO.GFSJ0823
题目描述:
粗心的Alice在制作密码的时候,把明文留下来,聪明的你能快速找出来吗?
题目附件:
给了一堆文件,就想着看看task.py
里面有什么,于是打开发现flag就在里面写着
得到flag:
1 | flag{fa0f8335-ae80-448e-a329-6fb69048aae4} |
结束语
以上,是笔者在攻防世界题库中Crypto方向第1至4题的解体思路,希望可以帮助到正在阅读本片文章的你,最后,感谢你的阅读,祝你生活愉快,学习顺利