
前言
- 复现
NPUCTF2020碰上彩虹,吃定彩虹! - 附件 https://pan.baidu.com/s/1Ok_xleNJ_VDqVYUnYpWIJQ 密码:
ijdv
Solutions
- 下载附件并解压,有三个文件:
lookatme.txt、maybehint.txt和secret - 打开
lookatme.txt发现文件是一串数字,全选以后发现最下方有几个空格和TAB换行组成的空。联想到是摩斯密码,空格 =.,TAB =-

- 翻译出来的摩斯密码是:
.- ..- - --- -.- . -.--,解密得到密文autokey,根据解出来的密文可以判断上面的字符串经过了autokey加密 - 再看一下
maybehint.txt,提示在txt中隐藏了一些东⻄,用vim查看

- 很明显为零宽度字符隐写,且由<200b>、<200c>、<200d>这三种字符组成, 去此网站解密,得到
do u know NTFS?如下图200d>200c>200b>

- 用
ntfsstreamseditor提取如下


- 稍加观察可以发现其中只有几种字符,而且都为重复的,据此可以尝试词频分析
1 | from collections import Counter |
- 得到结果为这几种字符从多到少的排列顺序,组合在一起得到
ZW5jcnlwdG8=,base64解密得到encrypto,百度encrypto可知其是一个加密软件,下载后尝试用其加密一个文件,可以得知经过其加密的文件后缀名为crypto,将secret文件后缀名改为secret.crypto即可打开文件

- 可以看到文件被加密,想到
autokey,但是由于没有给出加密密钥,所以需要对其进行 爆破,参考 此网址,当然,在 break_autokey 也准备好了,运行结果如下图

- 结合
hint小写, 密码为iamthepasswd - 可是用此密码解这个加密文件时却一直解不开,再结合题目描述中加粗的括号删掉,推 测是否在文件中还隐藏了什么信息,用
strings命令查看一下文件可以发现这样一条信息
1 | (Oh!Youcaughtme!But...) |
- 将其删去后再次尝试解密,即可成功解密,解密后得到一张
彩虹.png图片,binwalk查看有个压缩包, 用foremost分离得到一个加密压缩包,所以现在需要寻找密码 - 仔细观察图片可以发现,由五种不同颜色的横条分隔开的六块⻩色有略微深浅的差异, 用
gimp或ps打开提取一下颜色

- 分别提取一下六种⻩色,可以发现他们颜色的
HTML标记只有最后两位不同,从上到下 依次为70、40、73、73、57、64,将这几个数组合在一起,用Converter的Hex to Text,或者python的decode('hex'),就可以得到解压密码

- 解压后得到
docx文件,想到word隐写,显示隐藏文字

- 仔细观察上面的一⻓串字母,可以在众多的小写字母中发现几个大写字母,按照顺序组合起来得到
ALPHUCK, 查阅可知是一种Programming Language,只由a,c,e,i,j,o,p,s这8个小写字母组成,所以删去上面的几个大写字母,在线网站解码一下即可得到flag

