[NISACTF 2022]huaji

本篇将分享一道关于图片隐写的 CTF 题目解题思路。

解题步骤

1. 文件类型识别

下载的附件 atta.NISACTF_2022huaji 文件名后缀异常,需要先识别其真实文件类型。

使用 010 Editor 打开该文件,查看其文件头(File Header)。

屏幕截图 2025-07-21 111722

文件头部的十六进制数据为 FF D8 FF E0,这是 JPEG 文件的标准文件头。因此,可判断该文件为 JPG/JPEG 图片。

将文件名后缀修改为 .jpg,得到图片文件 atta.jpg

image-20250722141559035

2. 提取解压密码

查看 atta.jpg 文件的详细信息,在“照相机型号”字段发现一串十六进制数据。

屏幕截图 2025-07-21 164957

将该十六进制字符串转换为 ASCII 字符,得到一串有意义的字符串,推测其为后续步骤中压缩包的解压密码。

屏幕截图 2025-07-22 112500

1
ctf_NISA_2022

3. 分离 ZIP 与 JPG 文件

在 010 Editor 中检视 atta.jpg 的文件内容时,可以发现 flag.txt 字符串,据此推测图片文件中可能隐藏了其他文件。

屏幕截图 2025-07-21 144935

使用文件分离工具 Foremost 对 atta.jpg 进行文件分离。执行以下命令:

1
foremost.exe -t all -i atta.jpg -o output_real

屏幕截图 2025-07-22 104829

执行完毕后,在 output_real 目录中可以找到一个图片文件 00000000.jpg 和一个 ZIP 压缩包 00000084.zip。压缩包中包含 flag.txt 文件。

屏幕截图 2025-07-22 104751

4. 解压 ZIP 文件获取 Flag

使用 7-Zip 等解压工具打开 00000084.zip 文件,输入步骤2中获取的解压密码 ctf_NISA_2022

屏幕截图 2025-07-22 111520

成功解压后,得到 flag.txt 文件。打开该文件,即可获取最终的 Flag。

至此,本次解题结束。