关于四份解谜

可乐的解谜

第一份是来自@可乐解谜
可乐的解谜在几份解谜中算是难度相对较低的一份,但题目出的相对来说很新颖,对于不熟悉信安的答题人也相对友好。
既然是第一份,那就多啰嗦两句。其实这些解密题,包括CTF,这类游戏或者题目的本质就是答题者基于一定知识水平的基础上对信息进行收集和分析。
简单的题目可能不会把信息隐藏的太深,通过各种工具和方式直接收集到flag,至于复杂的题目,大致可以分为两种:一种是从信息角度出发,即题干本身就不完整,需要从已知的碎片信息出发进行分析;二是从熵出发,将flag或者提示的混乱度提高,达到阻碍甚至迷惑的作用。

#Q1

TIM截图20200126153656.jpg
做题一定要对资源有足够的敏感。所谓资源包括任何的a标签指向地址,包括网页的图片,包括引用的js和html本身(注释),甚至是网站的图标(小萌羽,CTF#Q1,2019)。
利用控制台(F12),可以看到html的注释信息。
TIM截图20200126154556.jpg
将鼠标移动至网页右下角可以找到“好吧,我就是入口”的链接。

#Q2

第二问是由四段编码组成的,应该可以很轻松的看出是base64编码。严格来说base64不是加密方式,编码前后的字符是一一对应双向转换的,而密码的一个基础要求是单射、一致(密码学,金晨辉等,高等教育出版社)。
从分析角度而言,一可以进行字符统计,观察是否能被4整除;二是观察编码尾部的“=”号,当然也存在多次编码的情形,所以说等于号也不是充要的判断条件。
与其进行分析,不如进行实际的尝试,这是经验之谈。
第一段字符是进行了3次base64编码,原文为:

很高兴你成功找到了入口,但我觉得那鼠标把每一个角落都点完,或者是随便划过的时候看到了,都能找到这个简陋的入口。不过我很好奇,你到底是怎么进来的。为了满足我的好奇心,这关放点水,这里有几个选项,你告诉我你怎么进来的,我就让你去下一关
o (´^`) o

第二段字符如果直接进行解码会发现错误,原因是文本段里出现了非base编码的字符“:”
将其进行拆分,可知前一段为:

我希望你不会生气到这样对我说:

冒号后的编码格式为:\uxxx,很明显为Unicode编码,解码后得到一串摩尔斯电码:

---/---/.--./.../-.-.--/-..----.--...../-.---...-...-.-/---...-..--.--./----.....--.-../-...-..----...--/-..---.-....--./--...-....-...-/--------....--../-..-....-.-...--/-..---..-..-.../-...-.------.---/--...-.-...-.-./--...-....-...-/----.....--.-../-...-..----...--/-.-..-..-..--.-/---.--.-....-../--..-.--....---/--..---..-.--../--..-.-..-----./-.-..-...--..../-.---.----..--./-..---.....-.--/-...-..---.-..-./---.--.-....-../-..-.--.-..-..../-....-.---..----/-...-----..-..--/-.-...-.--..-.-/--.-....-...--./-..-...---..--../--------....--../--...-..------./-..---.....--.-/-.-..-...--..../-...-----..-..--/-.-...-.--..-.-/--.-....-...--./---.--.-....-../-...-.----.---.-/-.-..-...-.-.--/-.-..-.-.-.-.../--------....--../-.--..-...--.-./---.---....-.--/---.---....-.--/--------...-----

对其进行翻译得文字:

OOPS! 你居然破解了我,那么请把我破解前的文本放到左下角的隐藏输入框里,找不到输入框的话别动,多看看?

关于摩尔斯电码,啰嗦两句。拉丁字符的摩尔斯编码是通用的,中文和日文这样的非拉丁文字需要二次编码,所以会有编码本这样的东西(在抗战片里常出现)

第三段字符使用base64编码四次,解码后为:

不过,你肯定也要先找到按钮啊(我是不是很坏 2333)。虽然我觉得藏按钮蛮没意思的,但我智商有限,加油找吧 ヾ (◍°∇°◍)ノ゙

button上的字符解码为:

文段里只有一个地方是 Unicode 编码(一层)的

这一段实际就是对第二段的提醒,不过已经没用了。
防复制处理可以通过控制台的方式将其复制(Eltrac's Track,2020 新年解密 Writeup,2020):
TIM截图20200126162424.jpg
在网页左侧可以找到对话框。
TIM截图20200126162906.jpg
根据提示将破解前的文本,即“:”后的base64编码输入,进入下一关。

#Q3

这一关的hint在title“404 not found”,观察地址栏可以发现当前的地址:

https://dev.guhub.cn/happy-new-year/page-2/

与前一关的地址格式不同:

https://dev.guhub.cn/happy-new-year/page-1.html

将其修改为对应格式进入下一关。

#Q4

这一关的入口在底下的版权信息的链接中。前文已经说了,对任何网页资源都要敏感。其实一种好的方法是将html保存到本地,本地编辑器的语法高亮会让你对标签更加敏感。

#Q5

hint为“选择一个链接回到以前你去过的页面”,即点击“回到实验室”。如果像上一段提到的那样整理标签,相信很快能找出来。

#Q6

同理,点击“尽情期待”。

#Q7

这是整个解谜中难度最高的一题,也是我个人认为出的最好的一题,本题需要对信息进行分析。当然所谓的“发散性思维”是没有办法学习的,只有靠基础知识的积累才能加强发散的效果。
文中的关键词有:“The largest”、“about 10 month”、“黑白配色的网站”,相对容易地能联想到github。我知道我要说容易你们会说我扯淡
TIM截图20200126164539.jpg
寻找10个月前的Contribution activity,可发现:
Picture1.jpg
进入repo可见:
Picture2.jpg
进行base64解码可得:

<root>/happy-new-year-end/success.html

至此,解谜结束。

#后记

援引作者本人的题解(Eltrac's Track,2020 新年解密 Writeup,2020),实际上最后一题的出题思路是:

The largest 意思是 “最大的”,而 wiki.guhub.cn 的前身是 code.guhub.cn ,所以这条指的是 code
= 代码。这两条连起来,指的是 “最大的代码(托管平台)”,对应 “黑白网站”,也就是 GitHub。我写的 Mark 主题是我写的第二个主题,“双” 指的是它是 “双栏设计”,并且它也大概有十个月( about 10 months)没更新了。

联系本关的题目“谁懂我心”,其实是需要对作者有所了解才能回答问题。
即使我不知道这些信息也能推断出答案,这便是我说这道题出的好的原因。一道好的题目是面向大众的,题目应该基于大众都熟悉的领域。

苟道的解谜

第二份是来自崇宫苟道解谜
这一份题目整体质量不错,除了倒数第二关的提示和题目是分离这一点有问题之外其他的都很好。

#Q1

反选,可以发现flag为Welcome

弹出“flag正确,可是然后呢”时,发现可以打开控制台,于是返回,可在startpage的页面中发现如下js信息:

type="text/javascript">window.alert('flag正确,可是然后呢');console.log('Flag:whiteorblack');

得知flag为whiteorblack,进入第二关

#Q2

使用stegsolve打开,得知flag为na

下面图片的“呐”其实是红包的提示,同时打开控制台也能找到关于红包的信息:

console.log('JXU2QjY0JXU5ODk4JXU1QjU4JXU1NzI4JXU3NzQwJXU0RTAwJXU0RTJBWkZCJXU1M0UzJXU0RUU0JXU3RUEyJXU1MzA1JXVGRjBDJXU1M0UzJXU0RUU0JXU0RTNBJXU0RTBFRmxhZyV1NjcwOSV1NTE3MyV1NzY4NCV1NEUwMCV1NTNFNSV1NTUxMCV1NEVFMyV1NEUwMyV1N0VERA==');console.log('请结合本题(表情包除外)仔细考虑 别来问我了');console.log('因为红包过期,所以请在诗句后加上本题所获得的flag');

由于是奔着通关去的,所以后续关卡关于红包的信息不再提及。输入flag进入第三关

#Q3

页面上的信息有:

1+"1"=2
1+2=3
0.1+0.2=0.3
1+"2"=12
fiNDtHELoNGEsTanSwErmAybEwROnG

控制台中的信息有:

以及

console.log('OrezMorfTrats');console.log('(tniopgnitrats)');

很容易发现这是倒写的“JavaScript”和“startfromzero”
(此处的zero开始还是拼错了的wwww)
上文的字符串为“Find the longest answer (that) may be wrong”
结合三条信息,在控制台中进行运算可以发现0.1+0.2=0.30000000000000004
这实际上是浮点数的存储方式导致的,不只是JavaScript的特性,在其他语言中也会有体现。
“Startfromzero”意味着从头开始,即在startpage填写该值。
提交后提醒“你回来了,可是然后呢”。
在控制台可观察到:

window.alert('你回来了,可是然后呢');console.log('cong');

输出flag“cong”是无效的,结合刚刚的倒写,猜测flag为“gnoc”,进入第四关
这一关难度其实相对来说比较大,需要头脑清醒以及一定量的知识储备才能通关。

#Q4


Q4以后的因为还没开奖,为了不影响游戏公平就不往下写了。等到作者本人更新题解之后我再跟进。
准备写的时候,发现已经有朋友写过了。
点击这里

ohmyga的解谜

第三份是来自Ohmyga解谜
这一份我也只是参与解谜没有参加抽奖。关卡数较少,并且作者本人也更新了,此处援引原作者的题解

我的解谜

第三份是我自己制作的解谜,以可乐的解谜为基础进行修改的。因为前期出现了碰撞出flag的问题,所以对所有的flag进行了md5加密。

#Q1

1+1=?
很明显flag为2,这一题是为了让玩家熟悉游戏规则设置的,并没有实际意义。加密为md5后进入下一关

#Q2

请输入图片描述
很明显函数为偶函数,所以积分结果为0。加密后进入下一关。

#Q3

请输入图片描述
很明显这是一个格式反应,根据下面的提示“flag全小写”,可以猜测答案为“grignard”,加密后进入下一关

#Q4

下载附件,使用word打开可以发现文字间有不规则间隙,全选后统一放大字号,可以提取出密文。
TIM截图20200127200119.jpg

pao ilza dpzolz mvy h ohwwf uld flhy huk aol mshn pz mshn

根据提示“between enter and control”,观察键盘可以发现enter键和control键中间为shift,联想到移位密码(凯撒密码),偏移量为7时得出明文:with best wishes for a happy new year and the flag is flag,即flag为flag,加密后进入下一关

#Q5

下载附件,在windows下查看图片应该无异常,在linux底下可能由于校验的原因会打开失败。
根据提示可知,Fe+2HCl=FeCl2+H2↑,即hint为01fe
使用文本编辑器打开图片,修改图片宽高(红框位置),得到隐藏在图片底部的flag为ithinkso
TIM截图20200127200756.jpg
这一题的hint略微有些牵强,但有过ctf基础的答题者应该不需要hint很快的就能找到问题所在。加密后进入下一关

#Q6

这一关比较放水。
请输入图片描述
观察图片,熟悉图像处理的同学应该能一眼看出这是haar特征(矩形特征),常用于边缘的检测,著名的Adaboost算法就是通过矩形特征来检测人脸的,效率相比于很多算法都高。
同时hint也提示这道题的flag与分类器有关。
这道题略微有些专业门槛了,设置的不太好。加密后进入下一关

#Q7

下载音乐,音乐中断有少许的毛刺声,初步判断不是通过标签等方式加密,而是通过修改声音。用Auditon或者Audacity等工具打开文件,发现两个声道并不对称,打开频谱图可发现flag。
TIM截图20200127201636.jpg
加密后进入下一关

#Q8

下载文件,通过文件大小很容易猜测出图片文件里隐藏了东西。通过工具或者直接观察hex可以分离出一个txt文件,根据文件内容可以知道这是一个sql文件。
TIM截图20200127202038.jpg
由数据表的文件名least square的提示可知,数据与最小二乘法有关。
观察hint,利用base64解码,可知提示为polyfit(x,y,2),熟悉matlab的同学应该立刻能发现这是二次多项式的拟合。
通过matlab或者笔算很容易得出原曲线为$f(x)=20x+20x^2$,即flag为2020,加密后进入下一关

#Q9

由于没人参与(忍不住痛哭),所以到第九关就太监了,第九关是一道关于汇编的题目,答案是5EB-3=5E8。
请输入图片描述
至此解谜结束了,但第九关回答完之后没有做链接。

Tags:none
上一篇
下一篇

添加新评论

已有 3 条评论

 援军 2 星期前 • |

大佬大佬,你们玩的完全看不懂了

 Gazzz 2 星期前 • |
@援军

援军大佬终于回归了

 Eltrac 1 个月前 • |

诶,规则里说不能用控制台的,复制也算犯规哦(坏笑)