buuctf[湖南省赛2019]Findme1

解压得5个图片,其中图片1,高度不正常,使用下面脚本破解真实高度和宽度

import os
import binascii
import struct
 
crcbp = open("1.png", "rb").read()
for i in range(1024):
    for j in range(1024):
        data = crcbp[12:16] + struct.pack('>i', i) + struct.pack('>i', j) + crcbp[24:29]
        crc32 = binascii.crc32(data) & 0xffffffff
        if crc32 == 0x000c4ed3:  # 图片特定crc值  000c4ed3
            print(i, j)
            print("hex", hex(i), hex(j))

IDAT隐写

chunk2和chunk3的CTYPE缺少IDAT字样,给加上(在16进制数据里改)IDAT的十六进制标识为49 44 41 54

改好图片1和其他图片一样了

改好后使用Stegsolve打开发现二维码,扫码得

ZmxhZ3s0X3

2,png尾部发现7z文件包含txt

有2006个7z 对应16进制就是377A,

7Z替换成PK

这些7Z后面要么是03 04 要么就是01 02,zip数据的,把7Z全部改成PK

CTRL+F CTRL+R

全部替换

拷贝到kali,使用binwalk分离得到1000个txt,

按照大小排序168最大

发现第二个线索 1RVcmVfc

3.png除了chunk7的CRC是正常的长度,其他的都太短了

把这6个crc保存下来

33 52 6C 5A 33 30 3D

3RlZ30=    第三个线索

cExlX1BsY   第四个线索

Yzcllfc0lN 第五个线索

ZmxhZ3s0X3

1RVcmVfc

3RlZ30= 

cExlX1BsY

Yzcllfc0lN

去cyberchef 解码,单独解码只有1和4可以解码,3最后是=肯定在最后,4在中间,只有12453和15423两种排列,最后按照15423排列

ZmxhZ3s0X3Yzcllfc0lNcExlX1BsY1RVcmVfc3RlZ30=

flag{4_v3rY_sIMpLe_PlcTUre_steg}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值