[湖南省赛2019]Findme
[湖南省赛2019]Findme
1.题目概述
2.解题过程
010打开这几张图片
先简单分析一下这几张图片
简单分析
1.png
从外观上,1.png明显高度太低,需要更改
2.png
2.png末尾有疑似其他文件的名称
3.png
3.png暂时没发现什么东西
4.png
4.png末尾有一串不明base64
cExlX1BsY
5.png
5.png末尾也有一串base64字符和提示性话语
Yzcllfc0lN
然后再开始深入分析1.png
简单修改高后打开
仍然没有什么信息
那来个专业的脚本看一下它原来的宽高是多少
import zlib
import struct
filename = '1.png'
with open(filename, 'rb') as f:
all_b = f.read()
crc32key = int(all_b[29:33].hex(), 16)
data = bytearray(all_b[12:29])
n = 4095
for w in range(n):
width = bytearray(struct.pack('>i', w))
for h in range(n):
height = bytearray(struct.pack('>i', h))
for x in range(4):
data[x + 4] = width[x]
data[x + 8] = height[x]
crc32result = zlib.crc32(data)
if crc32result == crc32key:
print("宽为:", end="")
print(width)
print("高为:", end="")
print(height)
按照这个数据给改一下
再打开
继续分析
IDAT隐写
使用工具pngcheck检查IDAT
下载地址:
pngcheck Home Page (libpng.org)
命令:
pngcheck.exe -v 1.png
显示有错误,010再打开1.png,
很明显,这两和其他人不一样
chunk2和chunk3的CTYPE缺少IDAT字样,给加上(在16进制数据里改)IDAT的十六进制标识为49 44 41 54
改好后再打开
LSB隐写
按照它原来的模样猜测有二维码
stegsolve打开
QR-reasearch扫描
哦耶,又找到一个线索
ZmxhZ3s0X3
再看2.png,按照前面的分析,2.png里应该藏有其他文件的数据,但是并没有找到zip之类压缩包的数据
会不会藏有其他格式的压缩包呢?搜一下看看
在搜索7Z时,有了一点线索
哈哈,笑死我了,出题人为了咱们能找到7Z竟然加了2000多个7Z,也不忘记加上个nothing here,有心了
7Z替换成PK
这些7Z后面要么是03 04 要么就是01 02,这不妥妥的zip数据的模样吗?把7Z全部改成PK
然后binwalk分离
打开
得到了999的txt究竟谁是最特殊的那个呢?
按照大小排序,618.txt最大,打开
哦耶,第二个线索
1RVcmVfc
或者直接搜索find,这样更简单,但是不好才到关键词是find
010看3.png,会发现,除了chunk7的CRC是正常的长度,其他的都不正常,太短了
把这6个crc保存下来,是
33 52 6C 5A 33 30 3D
然后放010里
哦耶,线索3
3RlZ30=
把5条线索集中到一起
1-5分别是
ZmxhZ3s0X3
1RVcmVfc
3RlZ30=
cExlX1BsY
Yzcllfc0lN
然后我就按照1-5的顺序直接解,结果不行???
排序,3肯定在最后,
1的解码
2解不出来
4
5也解不出来,
1开头,3结尾,4中间,那只有2种可能
12453或15423,试了一下15423的顺序正确
ZmxhZ3s0X3Yzcllfc0lNcExlX1BsY1RVcmVfc3RlZ30=
终于做出来了!!!
3.flag
flag{4_v3rY_sIMpLe_PlcTUre_steg}