misc5
解压后得到一张图片:

用010editor打开,在最后找到了flag:

ctfshow{2a476b4011805f1a8e4b906c8f84083e}
misc6
解压后得到一张图片:

还是用010editor打开,ctrl+F查找ctfshow,得到flag:

ctfshow{d5e937aefb091d38e70d927b80e1e2ea}
misc7
还是同样的方法,用010editor打开,ctrl+F查找ctfshow,得到flag:

ctfshow{c5e77c9c289275e3f307362e1ed86bb7}
misc8
这道题用010editor打开搜索flag,搜不到了。此处涉及的考点是图片隐写。
打开kali,先用binwalk查看一下是否有其他文件:
┌──(root㉿kali)-[~/input]
└─# sudo binwalk --run-as=root -e misc8.png

分析一下输出:
0 (0x0): PNG image, 900 x 150, 8-bit/color RGBA, non-interlaced
#这是文件开头的可视 PNG 图像(尺寸 900×150,RGBA 颜色模式)
91 (0x5B): Zlib compressed data, compressed
#在偏移量 91(十六进制 0x5B)处有压缩数据
3892 (0xF34): PNG image, 900 x 150, 8-bit/color RGB, non-interlaced
#这里有一张被隐写的图片,PNG格式。
3954 (0xF72): Zlib compressed data, default compression
#在偏移量 3954(十六进制 0xF72)处有更多压缩数据
再用foremost分离png文件:
┌──(root㉿kali)-[~/input]
└─# foremost -i misc8.png -o output
得到被隐写的图片:

ctfshow{1df0a9a3f709a2605803664b55783687}
misc9
这题也是用010editor直接搜到了:

ctfshow{5c5e819508a3ab1fd823f11e83e93c75}
misc10
这题没搜到,考虑和misc8一样的思路:
先用binwalk查看是否有隐写文件:
┌──(root㉿kali)-[~/input]
└─# sudo binwalk --run-as=root -e misc10.png

根据结果,有两个压缩文件。进入查找flag:

ctfshow{353252424ac69cb64f643768851ac790}
misc11
直接用010editor查看数据块找不到flag,用binwalk分离发现有两个压缩文件,但是直接查看无法得到flag。这里使用tweakpng。
发现有两个数据块。删除第一个,保存,然后查看图片:
得到flag:
ctfshow{44620176948fa759d3eeafeac99f1ce9}
misc12
无论时直接查看,还是使用binwalk分离都没有信息。还是用tweakpng。发现有多个数据块,edit-combine all idat合并所有数据块:
保存,然后再用binwalk分离:
第一个zlib块的数据长度为3149-41=3108,我们重新解压,用tweakpg打开,发现前八个IDAT相加差不多是这个值,因此删去前8个IDAT,保存:
打开新的图片:

ctfshow{10ea26425dd4708f7da7a13c8e256a73}
misc13
用010editor打开后,在最后找到了一串疑似flag的字符串:

从c开始,隔位取,得到了flag:
ctfshow{ae6e46c48f739b7eb2d1de6e412f839a}
misc14
010editor查看找不到flag,用binwalk:

这里binwalk没有生成结果文件夹,foremost也分离不出有效图片。因此直接使用命令提取:
dd if=misc14.jpg of=flag.png skip=2103 bs=1
#if=misc14.jpg 指定输入文件为 misc14.jpg。if 是 "input file" 的缩写。
#of=flag.png 指定输出文件为 flag.png。 of 是 "output file" 的缩写。
#skip=2103 跳过输入文件的前 2103 个数据块(由 bs 参数定义块大小)。
#bs=1 设置每个数据块的大小为 1 字节。bs 是 "block size" 的缩写。

生成了一张新图片flag.png,打开得到flag:
![]()
ctfshow{ce520f767fc465b8787cdb936363e694}
misc15
用010editor打开直接搜索ctfshow就找到了flag。

ctfshow{fbe7bb657397e6e0a6adea3e40265425}
misc16
010editor打开没有直接找到flag,用binwalk分离一下:

在分离的文件中找到了flag:

ctfshow{a7e32f131c011290a62476ae77190b52}
misc17
用010editor直接查看找不到flag。用binwalk分离,得到了一个压缩文件,但是解压失败。

于是先用tweakpng合并数据块,然后再用binwalk分离:

发现分离出的D6E这个文件实际上是一张png图片:

打开查看:

ctfshow{0fe61fc42e8bbe55b9257d251749ae45}
misc18
根据提示,右键查看属性,拼接后得到flag:




ctfshow{325d60c208f728ac17e5f02d4cf5a839}
misc19
使用命令:
exiftool misc19.tif
在DocumentName中找到了flag的前半段,在HostCompute中找到了flag的后半段:


拼接后得到完整的flag:
ctfshow{dfdcf08038cd446a5eb50782f8d3605d}
misc20
使用命令:
exiftool misc20.jpg
在comment中找到了flag的谐音:

ctfshow{c97964b1aecf06e1d79c21ddad593e42}
misc21
题目提示flag在序列号里。用exiftool查看图片信息,发现序列号:

解码序列号(16进制转字符串):
提示flag为16进制的X和Y。将文件信息里的X和Y(十进制)转为16进制:

这里注意要分别转换,然后再拼接,否则会出错。用代码进行转换:

ctfshow{e8a221498d5c073b4084eb51b1a1686d}
misc22
用010editor打开,发现FFD8(jpg头)有两个,删去第二个前的内容。

保存,得到了一张新图:

下方用黄色写了真正的flag:
ctfshow{dbf7d3f84b0125e833dfd3c80820a129}
misc23
提示flag在时间里,用exiftool查看图片信息:

在History Action里看到了提示,把时间转换为时间戳,然后再转换为16进制,就能得到flag。
把History When中的时间转换成unix时间戳:
874865822
2699237688
2156662245
460377766
然后再转换为16进制:
3425649e
a0e31938
808c0de5
1b70cea6
拼接得到字符串:
ctfshow{3425649ea0e31938808c0de51b70ce6a}
misc41
H4ppy Apr1l F001's D4y!
愚人节到了,一群笨蛋往南飞,一会儿排成S字,一会儿排成B字。
用010editor打开。发现有很多F001,搜索F001,发现它们的形状就是flag:

ctfshow{fcbd427caf4a52f1147ab44346cd1cdd}
1634

被折叠的 条评论
为什么被折叠?



