前言
最近在学习CTF中MISC类题目的解题技巧,并复盘了今年8月底GACTF比赛中的题目—crymisc,这道题里面包含了MISC题目中经常遇到的考点(文件头类型判断、压缩包文件伪加密、图片藏文件、编码解码)。
题目链接
链接:https://pan.baidu.com/s/1EZzhnAa5Q4OD8y-YEAcjzQ提取码:866h
解题思路
1. 首先下载根据提供的链接下载题目文件,由图1.1可知题目给出的文件为word文档。
图1.12. 尝试通过word打开题目文件,结果如图1.2文件无法正常打开。此时我们猜想文件可能不是Word文档格式,出题人可能更改了文件后缀。图1.2
图1.2图1.3
4. 更改文件后缀为zip,再通过压缩软件打开压缩包,如图1.4。此时我们发现压缩包中1.txt文件没有加密,打开1.txt文件阅读提示信息,发现内容与本题无关。结合得到的信息:3.jpg文件被加密但是题目并没有给出有用的提示信息。我们可以得出结论:要么是弱密码,要么是伪加密。图1.4
图1.5
5. 将zip文件再一次放入软件winhex中,分析文件加密位。首先通过搜索加密位16进制特征码“504B0102”找到加密位,如果加密位不为“00”需要将加密位改为“00”,并保存。此时我们发现原来的加密文件,不需要密码了。 图1.6图1.7
图1.8
6. 将图片解压出来,并打开。图片中并没有什么有用的信息,此时我们仍需要借助winhex软件分析图片,观察文件头并没有异常的地方,那么我们之后需要分析文件尾。jpg格式图片文件尾特征码“FFD9”,通过分析图2.2发现,文件尾并不在末尾。那么在jpg文件尾特征码之后的内容可能是另一个文件。图1.9
图2.1
图2.27. 继续分析上一步内容,通过上网查找“常见文件头”始终没有发现与本题相关的内容。此时我们通过观察图2.2右侧字符串中发现有一段内容为常见的字符串,并且在字符串下方有“crymisc.txt”字样的内容,再者在字符串16进制编码结束后的16进制头中“03041400”很像是常见文件头中的zip格式。图2.3
8. 将可以的16进制从“03041400”到末尾复制到另一个文件中,并保存为zip文件,尝试打开文件发现真的是一个被加密的zip文件。加密文件仍然没有提示,通过分析文件加密位发现并不是伪加密。汇总已知信息:目前有一个加密压缩包和在图片中存在一串可疑的字符。图2.4
图2.59. 结合上一步的信息我猜测这一串可疑的字符很有可能是压缩包的密码。经过尝试之后发现并不是密码。此时我还有个猜想:这一串字符很可能被加密了。接着便将可疑字符放入解密工具(在线解密工具)中一个个解密方式挨个试,最终功夫不负有心人使用base64解密得到密码,如图2.7。
图2.6
//
图2.710.解密文件内容如图2.8,打开文件发现一堆莫名奇妙的emoji表情。通过上网搜索发现这其实是“emoji加密”。最终在github上找到了emoji解密程序,最终解密如图2.9,得到最终flag:GACTF{H4ppy_Mi5c_H4ppy_L1fe}
图2.8
图2.9