ctfshow misc入门5-23、41 图片篇(信息附加)

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}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值