[湖南省赛2019]Findme
这个题真的好厉害!!!它值得单发
打开附件得到5张图片

1.png
先分析第一张
用010 Editor打开 显示CRC错误

于是跑一下脚本改一下
import struct
import binascii
import os
m = open("1.png", "rb").read()
k = 0
for i in range(5000):
if k == 1:
break
for j in range(5000):
c = m[12:16] + struct.pack('>i', i) + struct.pack('>i', j) + m[24:29]
crc = binascii.crc32(c) & 0xffffffff
if crc == 0x000C4ED3:
k = 1
print(hex(i), hex(j))
break
跑完改一下


改完保存一下
这就没有问题了 继续往下看 发现了端倪

发现了chunk2和chunk3都缺少了IDAT块
返回直接修改
IDAT块的数值是:49 44 41 54

然后修改chunk23


保存图片后再次打开图片就已经正常了
然后再用Stegsolve打开 在Blue plane 2发现了一张二维码
用QR Research扫描一下
得到第一段明文:ZmxhZ3s0X3
2.png
接下来分析第二张
拖到chunk 7末尾 发现了7k的头
那就把剩下的保存下来导入到一个新的文件里
再仔细查看发现这是压缩包的头被更改了
那就把7A 03->50 4B
搜索发现还真不少 那就用替换功能吧
搜索->替换或者直接ctrl + r

然后保存 压缩包就能正常打开了
1000个文件 根据经验 含有明文的一定是最大或者最小的
那就按照大小排个序

发现了618.txt排在了最前面

打开得到第二段明文:1RVcmVfc

3.png
接下来分析第三张图片
发现了图片的CRC有些不同

然后查看所有的crc
看了别人的wp得知:chunk[0]-chunk[6]的每一个数据块的crc值都是可打印的Ascii字符
然后用在线网址转换一下

得到第三段明文:3RlZ30=
4.png
在chunk[4]发现明文
第四段明文:cExlX1BsY
5.png
在结尾发现提示

第五段明文:Yzcllfc0lN
总和
1:ZmxhZ3s0X3
2:1RVcmVfc
3:3RlZ30=
4:cExlX1BsY
5:Yzcllfc0lN
顺序打乱了💔只能一段一段拼接试
运气不错只试了三次:1->5->4->2->3
ZmxhZ3s0X3Yzcllfc0lNcExlX1BsY1RVcmVfc3RlZ30= |
|---|

得到结果:flag{4_v3rY_sIMpLe_PlcTUre_steg}
[^这个题真的很不错,通过这个题对图片的片段理解的更加深刻了,对010 Editor的使用更加熟练了]:

浙公网安备 33010602011771号