d4rk3stV0id/nromandyCTF-Writeup
GitHub: d4rk3stV0id/nromandyCTF-Writeup
一份详细的CTF赛事隐写与取证方向解题报告,记录了多种常见文件格式的底层分析与隐藏信息提取过程。
Stars: 1 | Forks: 0
normandyCTF Writeup [隐写术与取证任务 2 & 3]
Lochan Thanigai Murugan Padmashree (void.null.id)
提示:提示非常有用,但最好自己进行一些探索/研究。同时,将 CyberChef 等常用工具保存在方便访问的地方。
### 任务 2:隐写术与取证 [第 1 部分]
Q1. 给定的文档偷偷隐藏了一个 flag,找出它。
提示:文档编辑器有你不知道的选项。
下载并解压附加的任务文件后,您将找到回答每个问题所需的全部 flag 文件。
对于第一个问题,考虑到问题提到了一个文档,我们需要查看 'sneakyPeaky.docx'。我做的第一件事就是全选文本,看看是否有白色的隐藏文本。因为没找到任何东西,我快速在 Google 上搜索了如何在 Word 文件中查找隐藏文本,结果发现在“文件”->“选项”->“显示”下有一个查看隐藏文本的选项。为了保险起见,我勾选了所有与隐藏文本相关的复选框。点击确定后,段落下面就出现了 flag!!
获得的 Flag:CBITS{y0u_c4n_h1d3_1n_d0cs!?!?!?}
Q2. 为什么这张图片被命名为 info???我在图片上看不到任何信息,那只是一只鳄鱼或短吻鳄!!!
提示:flag 是 CBITS{<你在图片中发现的内容>}
遇到隐写术时,首先要做的就是查看文件的 EXIF/元数据。我使用了一个在线元数据查看器。在浏览时,我在“作曲者”和“关键字”项下发现了一个字符串。它看起来像是被编码过的,因此我打开 CyberChef 并粘贴了该字符串。然后使用 Magic 操作,我能够推断出这是一条 base32 编码的信息,而且 CyberChef 也很方便地解码了该字符串。解码后的消息正是这道题所需的 flag 内部部分。
获得的 Flag:CBITS{i_am_n0t_n33d3d}
Q3. 猫说了什么才会处于那个位置???哦,留下了一些线索,我的 Python 知识派上用场了!!!
提示:逆转这个过程难道不行吗?
这道题提供了两个文件:一张图片和一个 Python 脚本。在分析该 Python 脚本后,它似乎充当了一个最低有效位图片编码器,允许您将文本隐藏在图片中。对程序进行逆向工程,将图片作为输入并解码文本即可得到 flag(可能会带有一点垃圾值)。
获得的 Flag:CBITS{W3lc0m3_t0_Scr1pt1ng}
Q4. 计算机只懂二进制,要么是“是”,要么是“否”。这些随机的“是”和“否”有可能存储比“是”和“否”更多的信息吗???
提示:要是我们能从二进制文件中提取出字符串就好了……
这道题涉及的是 'YesOrNo.exe'。在 CTF 中,我通常会对任何文件做的一件事就是用记事本打开它,然后使用查找按钮来搜索我想要的内容。在这种情况下,我知道 flag 的格式是 CBITS{},所以我搜索了 'CBITS' 并得到了 flag。不过中间有一些垃圾字符,我不得不把它们删掉。我不确定这是否是正确的做法,但只要行得通,那就是好方法!:p
获得的 Flag:CBITS{h1dd3n_1n_7h3_b1nar135}
### 任务 3:隐写术与取证 [第 2 部分]
Q1. 我第一次下载了一张 BTS 专辑,结果不出所料是垃圾!里面只有哔哔和嘟嘟声。你能帮我翻译一下吗?
提示:一位画家和一个悲伤的鳏夫。
听完音频文件并结合问题来看,这显然是摩斯密码。我打开了一个在线摩斯密码音频解码器,上传了文件并运行。音频播放结束后,便获取了解码后的文本。
获得的 Flag:CBITS{M0RS3C0D3W4SC00L}
Q2. 另一张专辑,另一份垃圾!看来整个音乐界都失去了它那令人舒缓的频谱!
提示:伴随撞击声制作而成。
问题 1 中使用的同一个网站也可用于此音频文件。打开 Audio Decoder (Expert),上传文件并播放,您就会得到 flag(向下滚动即可找到)。这最终证明是一次频谱图解码。
获得的 Flag:CBITS{th3_4ud4c1ty}
Q3. 我们有这个奇怪的文件,没有扩展名,甚至不执行任何东西。如果我们想找到 flag,我们需要找出这是什么文件类型!!!
提示:扩展名决定了系统如何读取文件。
看到提示后,我通过给它加上 '.txt' 扩展名对其进行了重命名。打开文件后,我在最上面一行看到了 'Rar'。看到这个,我将文件扩展名改为 '.rar' 并解压了该压缩文件。打开文件,我们可以看到 XML 代码。使用记事本的查找功能,我们可以获取 flag。此外,将文件重命名为 '.xml' 扩展名并打开,你会发现一只英俊的企鹅。
获得的 Flag:CBITS{f1L3_3x73n5i0N_f0unD}
Q4. 有人从我的文件中偷走了一个 '7b'、三个 '48' 和三个 '58',现在它们变成了 ZERO ZERO。救救我吧!!!继续尝试,直到你把我的文件找回来……我的意思是直到它变得有意义!
提示:无提示
将提供的十六进制字符从十六进制转换为 ASCII。获得的字符分别是 '{'、'H' 和 'X'。根据 'myfile.txt' 文件内容中每种字符的数量放置这些字符,我们即可获得 flag。
获得的 Flag:CBITS{H3X_H3X_H3X}
Q5. 我从一艘外星飞船上取回了一张图片,你猜怎么着?它是我们 55 年前发送到太空的同一张图片,但这张图片有些不对劲。我相信它被篡改过!帮我查清楚!
提示:无提示
一张只有蓝色背景的图片。真可疑!尝试之前的任何方法,我都无法获得任何结果。但我经常摆弄图片,看看是否能提高可见度或增强色彩等。这让我萌生了在图片编辑器中打开它并调整各种参数(对比度、亮度等)的想法。就这样,我成功获得了 flag。
获得的 Flag:CBITS{1_4m_H1dd3n}
Q6. 这两个文件包含了电影史上呈现给我们的最佳反派!但为什么是两个文件?……不应该是 hello world,就一个文件吗。无论如何。我被告知该反派的 512 校验和就是 flag。
提示:png
提供的链接指向一个包含两个没有扩展名的空白文件的 Google Drive 文件夹。在文本编辑器中打开这两个文件,发现里面只有十六进制字符。提示表明我们需要获取一张 png 图像。因为我不太有经验,所以我在这道题上寻求了另一位参赛者的帮助。第一步是使用以下命令将两个二进制文件的内容合并为一个:'cat hello.bin world.bin > helloworld.bin',然后使用 xxd 工具通过命令 'xxd -p helloworld.bin > combined.png' 将二进制文件转换为 png 文件。我不记得我们是从 bin 转换为 hex 然后再从 hex 转换为 png 文件,还是直接从 bin 转换为 png。只要尝试不同的方法,最终你都能打开并看到那个反派。第二步是获取 512 校验和,这可以使用 'sha512sum helloworld.png' 来完成,获得的校验和即为 flag。
获得的 Flag:CBITS{ccec28a5ac52e4ea856df8b74d0dd63537125f10984c3304f70f15415dd41bfd666571bfec10f046a2af98edf2f1266d4fddb955350be706b9afd9b4955b3e55}
标签:Base32编码, CBITS, CTF Writeup, CyberChef, DNS 反向解析, EXIF数据, meg, NormandyCTF, Python, REVA University, 信息安全, 元数据分析, 图片隐写, 密码学, 手动系统调用, 技术分享, 数字取证, 文档隐写, 无后门, 网络安全, 自动化脚本, 解题报告, 逆向工具, 隐写术, 隐私保护