赞
踩
在大学里第一次接触到这么有趣的东西,当然是要写点什么留作纪念。
也算是菜狗的自我提升了(?)
截止到编辑这篇文章时,在这个区域现存的12道题里,绝大多数都可以使用CTF在线工具进行快速解决。当然后续的进阶中的难题也会使用Python或网络上已有的可下载工具进行解决。
这一次先对前一半进行学习和总结,后一半放在下一次的记录中。
题目描述:元宵节灯谜是一种古老的传统民间观灯猜谜的习俗。因为谜语能启迪智慧又饶有兴趣,灯谜增添节日气氛,是一项很有趣的活动。你也很喜欢这个游戏,这不,今年元宵节,心里有个黑客梦的你,约上你青梅竹马的好伙伴小鱼,来到了cyberpeace的攻防世界猜谜大会,也想着一展身手。你们一起来到了小孩子叽叽喳喳吵吵闹闹的地方,你俩抬头一看,上面的大红灯笼上写着一些奇奇怪怪的字符串,小鱼正纳闷呢,你神秘一笑,我知道这是什么了。
题目附件:
解题过程:
题如其名,就是考察base64的编码方式,并没有什么难度,用开头提到的在线工具可以很方便快速地进行解密。
这样我们就很轻松地得到了要输入的内容:
cyberpeace{Welcome_to_new_World!}
而关于base64模块在Python中的应用,在另一位大大的文章:Python base64模块详解中解释地十分清楚了,这里就只给出链接和代码。
# 导入base64模块 import base64 # 给定需要转换的字符串 str1 = "Hello" # 需要转成 2进制格式才可以转换,所以这里手动转换 result = base64.b64encode(str1.encode()) # 打印转换后的结果 print('转换后的结果 --> 'result) # 再把加密后的结果解码 temp = base64.b64decode(result) # 同样的,解码后的结果是二进制,再转换一次 print('解密后的结果 --> 'temp.decode())
而要在Python中使用这些模块,还需要encode, decode, encodestring, decodestring, b64encode,b64decode, urlsafe_b64decode,urlsafe_b64encode这些包的支持,在Python中可以自定义安装,这里也就不多赘述了。
题目描述:你成功的解出了来了灯谜,小鱼一脸的意想不到“没想到你懂得这么多啊!”你心里面有点小得意,“那可不是,论学习我没你成绩好轮别的我知道的可不比你少,走我们去看看下一个”。你们继续走,看到前面也是热热闹闹的,同样的大红灯笼高高挂起,旁边呢好多人叽叽喳喳说个不停。你一看 大灯笼,上面还是一对字符,你正冥思苦想呢,小鱼神秘一笑,对你说道,我知道这个的答案是什么了。
题目附件:
解题过程:
与上题同样在网站上可以简单粗暴地进行解密,只是需要自己去调整Caesar密码的Key的值。最后试出来Key的值为14。
这样所需的flag又很简单地得到了:
cyberpeace{you_have_learned_caesar_encryption}
至于在Python中实现Caesar密码的加密和解密的方法,在本站上已经有很多很完善的文章了,大家可以自行查阅。
题目描述:小鱼得意的瞟了你一眼,神神气气的拿走了答对谜语的奖励,你心里暗暗较劲想着下一个谜题一定要比小鱼更快的解出来。不知不觉你们走到了下一个谜题的地方,这个地方有些奇怪。上面没什么提示信息,只是刻着一些0和1,感觉有着一些奇怪的规律,你觉得有些熟悉,但是就是想不起来这些01代表着什么意思。一旁的小鱼看你眉头紧锁的样子,扑哧一笑,对你讲“不好意思我又猜到答案了。”(flag格式为cyberpeace{xxxxxxxxxx},均为小写)
题目附件:
解题过程:
在摩斯电码中常见的两种表达方式:长信号“-”和短信号“.”;对应着“1”和“0”的表达方式。
在工具网站上支持直接使用10的解密,也可以手动替换后再进行解密。
最后结合题干,审题组合得到了最终结果:
cyberpeace{morsecodeissointeresting}
至于用Python实现摩斯电码的解密个人认为没有什么必要进行解释,因为摩斯电码表是固定的,一一对应然后进行替换就可以很简单地实现了。
题目描述:你和小鱼终于走到了最后的一个谜题所在的地方,上面写着一段话“亲爱的朋友,很开心你对网络安全有这么大的兴趣,希望你一直坚持下去,不要放弃,学到一些知识,走进广阔的安全大世界”,你和小鱼接过谜题,开始了耐心细致的解答。flag为cyberpeace{你解答出的八位大写字母}
题目附件:
解题过程:
在刚看到这一串数字的时候:第一反应觉得自己上当了。因为附件不符合二进制幂数加密的形式,幂数加密只会出现0~4的数字,而附件中存在范围之外的数字。后来观察题目中只存在01248,猛然发现原来是01248密码(或者叫做“云影密码”)。下面简单解释一下幂数加密和云影密码的区别:
幂数加密:任何十进制的数字c都可以表示以下的形式:
c
=
2
n
/
c
=
2
n
+
2
m
+
.
.
.
c=2^{n}/c = 2^{n}+2^{m}+...
c=2n/c=2n+2m+...
字母-序号 | 计算式 | 幂数加密 |
---|---|---|
A - 1 | 1=20 | 0 |
B - 2 | 2=21 | 1 |
C - 3 | 3=20+21 | 01 |
… | … | … |
Y - 25 | 25=20+23+24 | 034 |
Z -26 | 26=21+23+24 | 134 |
云影密码:与二进制幂数加密不同,这个加密是0作间隔,其他非0数隔开后组合起来相加表示序号1-26之一的字母,用本题举例来说,将原序列重新间隔后得到一个新的序列:
88421 0122 048 02244 04 0142242 0248 0122
分别相加后得到如下数字:23 5 12 12 4 15 14 5,分别对应26个字母中的相应字母,即可得到明文串“WELLDONE”。
所以我们就得到了最终的答案:cyberpeace{WELLDONE}
而在Python的实现当中,幂数加密和摩斯电码一样是存在一一对应的替换关系。而云影密码只需要对字符串逐位相加进行计算,当为0时进行一次输出,并重新开始下一次计算,最后从1到26分别对应A到Z进行替换,即可最终输出答案。
题目描述:被小鱼一连将了两军,你心里更加不服气了。两个人一起继续往前走,一路上杂耍卖艺的很多,但是你俩毫无兴趣,直直的就冲着下一个谜题的地方去了。到了一看,这个谜面看起来就已经有点像答案了样子了,旁边还画着一张画,是一副农家小院的图画,上面画着一个农妇在栅栏里面喂5只小鸡,你嘿嘿一笑对着小鱼说这次可是我先找到答案了。
题目附件:
解题过程:
老规矩,遇事不决上工具网站,网站上提供的栅栏密码解密还是很香的。至于解密的Key在题目描述里其实已经暗示了,是5。
所以这一题的答案也很容易就得到了:
cyberpeace{railfence_cipher_gogogo}
至于栅栏密码的加解密在本站上也有很多大大做过了,这里就挑一篇我最开始学习的时候借鉴比较多的一篇以供参考:栅栏加解密python实现(支持密钥加密)
题目描述:“这个题目和我们刚刚做的那个好像啊但是为什么按照刚刚的方法做出来答案却不对呢” ,你奇怪的问了问小鱼,“可能是因为还有一些奇怪的加密方式在里面吧,我们在仔细观察观察”。两个人 安安静静的坐下来开始思考,很耐心的把自己可以想到的加密方式一种种的过了一遍,十多分钟后两个人 异口同声的说“我想到了!”。一种食物,格式为cyberpeace{小写的你解出的答案}
题目附件:
解题过程:
看到这一大片熟悉的长信号“-”和短信号“.”,但夹杂着那么多的“/”该怎么处理呢?于是想到了正常的摩斯电码是以空格作间隔,所以把文本用“ ”替换“/”,然后再用工具网站进行解密就能很轻松地得到…答案?
这一串长长的:
may_be_have_another_decodehhhhaaaaabaabbbaabbaaaaaaaabaababaaaaaaabbabaaabbaaabbaabaaaababaabaaabbabaaabaaabaababbaabbbabaaabababbaaabbabaaabaabaabaaaabbabbaabbaabaabaaabaabaabaababaabbabaaaabbabaabba
看到这只有“a”和“b”字符串是不是想到了什么?培根密码!所以在工具网站上对培根密码进行解密,终于得到了最后的答案。
最后结合题干,审题组合得到了最终结果:
cyberpeace{attackanddefenceworldisinteresting}
学习小结:
在攻防世界的第一天,接触到CRYPTO的新手区题目还算友好,大抵还是基本的、常见的密码或编码形式,也很容易就可以找到完善的工具很方便地进行解密,希望这篇文章对同样刚开始接触这方面知识的朋友能够有一定的帮助,也希望自己可以继续努力深入学习,早日成为大佬(秃头)。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。