首页
社区
课程
招聘
[原创]Crypto 九层妖塔 —— 一道内含 24 种编码及加密算法的巨无霸套娃式密码题
发表于: 2020-6-21 11:33 22764

[原创]Crypto 九层妖塔 —— 一道内含 24 种编码及加密算法的巨无霸套娃式密码题

2020-6-21 11:33
22764

一层:腐木基座隐塔身
二层:幽曲木栅落凡尘
三层:普莱菲尔封凯撒
四层:道法挪移镇邪煞
五层:半盲道人荡图灵
六层:圣堂武士震四方
七层:九转方棋威五堂
八层:梵音回响摄心神
九层:九曲轮回链生死
阵启:万古佛法通古今
破封:六十四卦补阴阳

之前特别喜欢看雪上的一道名为九重妖塔的逆向题,校赛中要出一道密码题,故突发奇想,花了一天半的时间,整了这么一道密码学的九层妖塔,虽然没有密码学的灵魂 RSA,但也添加了一些故事性的描述,力图增加一些趣味性,同时涉及到了总计 24 种编码及加密算法,希望可以更好地了解密码学这个充满魅力的体系。(注:最后解出的 WP 为旧文档)

补充:本来想投稿到看雪的题库中,结果发现自己这题目是个“巨无霸套娃”,实际上没什么技术含量,还请大佬轻喷,适合有耐心的入门小伙伴了解密码学,所以作为小妖(me)的新人贴吧。

腐木基座隐塔身:base编码、列位移密码(密钥)、曲路密码(路径)
幽曲木栅落凡尘:栅栏密码(W型)、曲路密码
普莱菲尔封凯撒:普莱菲尔密码、凯撒密码、四方密码(两段密钥)
道法挪移镇邪煞:列移位密码、六十四卦图(密钥)、盲文(密钥)
半盲道人荡图灵:盲文、brainfuck、仿射密码(密钥)
圣堂武士震四方:猪圈密码变种、四方密码、波利比奥斯方阵密码(密钥)、维吉尼亚密码(密钥)
九转方棋威五堂:波利比奥斯方阵密码、维吉尼亚密码(威)、仿射密码(密钥)
梵音回响摄心神:敲击码、仿射密码、摩尔斯密码、夏多密码(密钥)
九曲轮回链生死:夏多密码、六十四卦图(文件)
万古佛法通古今:与佛论禅、新约佛论禅
六十四卦补阴阳:六十四卦密码、二进制转字符、ASCII编码

故事带入,某某无意间找到一个“精美的盒子”,但是这个盒子外面加了一道四个数字的密码锁,但是作为神偷,他很轻松地用工具解开了(这里涉及到压缩包爆破,有隐写的嫌疑……咳咳,不过也仅此一处,后面的爆破几乎很难……)

然后发现一张“藏宝图”,封面是一个有些散架的,散发着淡淡幽蓝色彩的,呃……大写“B”?
翻开里面,掉出一张枯黄的草纸,捡起来,开始阅读:

“传说东方有一座九层妖塔,里面有着富可敌国的宝藏,若想得到,需要解开层层密码,突破迷雾与阻碍……”

然后下面是一堆(什么鬼)……

由“基座”联想到 base 编码,最后确定依次进行 base64、base32、base16

得出一堆信息,继续分析……

“隐塔身”可能暗示隐藏着某些信息,通过上面的解密得到以下信息:

但是似乎还不够,我们没有找到下一层的方法,再看看那张图,发现下面有一些空白,反白一下,又发现了一些信息:(上面的数字似乎缺了一些,还有个字母 l,之后回忆起正是对应上文的加密 base64、base32、base16)

base64解出如下:

发现 Nine layer demon tower (九层妖塔)这个似乎才是真正的入场券,至于其他信息先留着,也许之后有用,现在成功进入了第二层……

由“木栅”首先联想到栅栏密码,这里难度升级为 W 型栅栏,注释中有一个 4,猜测为四栏:

栅栏密码(W型)在线解密
http://www.atoolbox.net/Tool.php?Id=777
得到:

虽然现在还是乱码,但是不要急,接着由“幽曲”再次联想到曲路密码,结合第一层得到的“曲径通幽处”,猜测为曲路密码的路径,即:

绘制 6x6 表格,按照路径依次填入

整理得到:(Hit:曲径通幽处)

解压成功,进入第三层

这层很明显可以想到普莱菲尔密码、凯撒密码,接着用上层最后得到的密钥打开压缩包,注意到注释中写着:

接着看到:

尝试普莱菲尔密码,加上注释中“菲尔的钥匙”,进行在线解密
http://www.practicalcryptography.com/ciphers/classical-era/playfair/
得到:(吾儿,亦有汝焉?)

解出来发现不能打开“凯撒之言”,结合题目GG查一下,发现这是一句拉丁语名言,即

接着尝试一下这句话,成功打开“凯撒之言”,发现了三个单词样式的字符串,基本确定为凯撒加密:

在线解密后
https://planetcalc.com/1434/
确定偏移量均为 ROT20,得到:

测试后,发现 process 为进入下一层的压缩包密码,但是不清楚剩下两段密钥是用在哪里,先保留,继续进入第四层(这里埋了个坑,之所以没有用 md5 防止爆破,是因为如果偷懒直接爆破出压缩包的密码,到了第六层就找不到四方密码的密钥了,最后还得绕回来……)

“挪移”联想移位的加密,确定列移位密码,先记录压缩包注释中 a=15,接着尝试解开“失落的无字罗盘”,之前第一层得到一张图纸上写着:Lost compass(译为:失落的罗盘),猜测这是列移位密码的 keyword,打开“镇煞之符”文件,发现:

通过列移位密码在线解密
http://www.practicalcryptography.com/ciphers/classical-era/columnar-transposition/

得到:(菩提本无树,明镜亦非台)

作为密码,成功打开“失落的无字罗盘”,打开里面的文件,发现是个空白,切换背景色,出现文字:“菩提本无树,明镜亦非台!恭喜你找到了这个刻着 way 的无字罗盘,带着它,把它交给半盲道人,他会带你继续走下去。未来……当你做到那……手握日月摘星辰,世间无我这般人……你便可以知生死,通古今,互阴阳,悟得卦图,道破天机!”

“半盲道人”很容易联想到盲文,加上上一层解出的刻着 way 的“失落的无字罗盘”,猜测为盲文密码,在线解密
https://www.qqxiuzi.cn/bianma/wenbenjiami.php?s=mangwen

得到:

接着由“图灵”联想到 brainfuck 加密,在线解密
https://www.splitbrain.org/services/ook
得到:

然后你想爆破压缩包,不可能的(+_+)
https://www.somd5.com/

md5(32)来一次,得到:

OK了,解压成功,进入第六层……

“圣堂武士”想到猪圈密码变种,有三张图包含两个变种,分别解出



得到一枚黑色棋子:polybios
得到一枚白色棋子:xcbyao
以及一张草纸:OBLFGOKYCNQRKLYTZIGS

“震四方”为四方密码,下图为示例(非本题),第三层“凯撒之言”得到两段多余的密钥 securityprefil,此处用上

解密得到一串密文:(坐亦禅,行亦禅)

解压成功,进入下一层……

首先看到其中的压缩包注释信息:翻看一下,发现棋盒底部篆刻着 < b=20 >,你需要通过圣堂武士的两枚棋子,找到钥匙,打开棋盒,拿到里面的卷轴,它会指引你继续前进……

接着分析,“九转方棋”联想到棋盘密码,最后确定为波利比奥斯方阵密码,第六层得到两枚棋子,这里用黑色的一枚作为密钥,即 polybios,然后再看文件中给出的信息:
24122413541544244243132222(Hit:九转方棋)

http://www.atoolbox.net/Tool.php?Id=913
解码得到一把钥匙:(根据提示,加上两个空格,即九转方棋的英文)

打开棋盒中的卷轴,发现下面的语句:

“威”谐音“维”维吉尼亚密码,第六层得到的两枚棋子,这里还剩下白色的,即 xcbyao,作为此处密钥,在线解码
http://www.atoolbox.net/Tool.php?Id=856
得到:(一念愚即般若绝,一念智即般若生)

测试一下,压缩包解密成功,成功开启第八层……

“梵音回响摄心神”中,结合文件内容,第一个文件解出来一堆有规律的点:

“梵音”联想到敲击码,对照上表,每两段替换一个字母,解出如下:

“摄”谐音“射”,又联想到仿射密码,在线解密,前面第五层压缩包注释中得到 a=15,第七层压缩包注释中得到 b=20,设置好系数 a b
http://www.atoolbox.net/Tool.php?Id=911

解出一堆大写的 Z O 字符:

联想一下,Z 代表 zero,O 代表 one,即文本替换一下,得到一堆 0 1,得到:

可能是二进制转字符?或者摩尔斯密码?

再次看提示中有“回响”,这里猜测是摩尔斯密码,继续替换,0为点,1为杠,如下:

在线解密一下
http://www.zhongguosou.com/zonghe/moErSiCodeConverter.aspx

解出一串数字:2341312411342132442

接着发现两个压缩包,其中一个《六十四卦图》,想起来之前第四层“道法挪移”中压缩包中得到的图纸上写着做到:“手握日月摘星辰,世间无我这般人”,猜测为密码,解压成功,再看另一个:

“九曲轮回链生死”联想到曲折加密、圆形、《死亡之链》,即夏多密码,同时,前面第八层“梵音回响摄心神”中得到一串数字,确定为夏多密码的密文变换规则,解出后应为下层钥匙


依次代入密文规则,即 2341312411342132442,解密后得到的都是大写,依据句子格式完整化输出(含句点)为:

符合压缩包中注释信息——龙族,确定为压缩包密码,测试一下,成功解压出 TXT 文件,内含如下信息:

由“佛法通古今”以及“新佛曰:”联想到新旧与佛论禅,很明显要先进行一次新约佛论禅,解出:

再进行一次与佛论禅,发现提示“太深奥了,参悟不出佛经的真意……”,这里你需要“普渡众生”,原来少了“佛曰:或如是我闻:”,加上“佛曰:”后成功参悟真谛

http://hi.pcmoe.net/buddha.html
http://www.keyfc.net/bbs/tools/tudoucode.aspx

解出一堆天干地支:咸同人归妹明夷贲革无妄
联想到伏羲六十四卦的二进制矩阵表

通过上图,解密六十四卦,阴为 0,阳为 1,补阴阳,猜测不满八位时,前补或者后补 01,最后转换后补错误,确定前补,得到二进制如下:

想到 ASCII 编码,去掉空格后,用下面网址进行转换,
http://tool.huixiang360.com/str/from-binary.php
二进制转字符,得到 Nothing

这里本想直接脑洞一下,猜解出只留下 nothing,然后尝试大小写和首字母大写(Something for nothing! 拿什么珍贵的东西,换来了空白。——龙族)

最后得到未加密 flag:Nothing
md5 32位加密后,格式化输出:flag{f80a4ad87fee7c9fdc19b7769495fdb5}

先讲点题外话,个人很喜欢江南的《龙族》,”每个人心里都有个死小孩“,他陪伴我度过了孤独的几年,于我看来,路鸣泽是对强大的自己的一个憧憬吧,所以设计思路中用到了《龙族》的句子。题目典型的套娃,这是我准备投稿的时候才认识到的问题,质量与之前参加的网鼎杯和虎符杯相比,简直渣的要命(捂脸),谁让我太菜呢,所以欢迎大家无情吐槽,,不过比我强一点点的大菜鸡可以无聊研究一波,算是了解补充一些古典密码学知识吧!

注:题目已上传到附件(只是个装着文档的压缩包,Chrome 莫名危险拦截,只好加个解压密码:bbs.pediy.com),欢迎品尝 (●'◡'●)


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2020-6-21 12:02 被xcbyao编辑 ,原因: 压缩包 Chrome 下被拦截,添加目录
上传的附件:
收藏
免费 8
支持
分享
最新回复 (7)
雪    币: 4934
活跃值: (1056)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2

那个第一次发主题,不知道应该放在 CTF 板块还是密码学的

最后于 2020-6-21 12:08 被xcbyao编辑 ,原因:
2020-6-21 11:38
0
雪    币: 4883
活跃值: (18890)
能力值: ( LV13,RANK:317 )
在线值:
发帖
回帖
粉丝
3
xcbyao 那个第一次发主题,不知道应该放在 CTF 板块还是密码学的
看雪ctf板块都是re..
2020-6-21 13:50
0
雪    币: 9142
活跃值: (1630)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
4
感谢楼主分享这么好的东西,受益匪浅…
2020-6-21 17:19
0
雪    币: 4934
活跃值: (1056)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
0x指纹 看雪ctf板块都是re..
谢谢师傅提醒,我正在学二进制,以后有机会在CTF板块发帖
2020-6-22 09:43
0
雪    币: 4934
活跃值: (1056)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
严启真 感谢楼主分享这么好的东西,受益匪浅…
和师傅们出的题比较,我这只是个体力活,还要加油
2020-6-22 09:45
1
雪    币: 10845
活跃值: (1054)
能力值: (RANK:190 )
在线值:
发帖
回帖
粉丝
7
LZ汇聚了很多种古典密码算法,很有趣
值得新人打卡签到
2020-6-29 09:31
0
雪    币: 4934
活跃值: (1056)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
8
看场雪 LZ汇聚了很多种古典密码算法,很有趣 值得新人打卡签到[em_13]
补充一下设计思路用到的古典密码学算法参考网址:http://blog.neargle.com/SecNewsBak/drops/CTF%E4%B8%AD%E9%82%A3%E4%BA%9B%E8%84%91%E6%B4%9E%E5%A4%A7%E5%BC%80%E7%9A%84%E7%BC%96%E7%A0%81%E5%92%8C%E5%8A%A0%E5%AF%86%20.html
2020-6-30 07:35
0
游客
登录 | 注册 方可回帖
返回
//