首先下载之后是5个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)
                

 

用010修改完宽高打开图片

 

下面的全是像素点,说明下面idat块有问题

加上IDAT 16进制就是49 44 41 54

再用stegsolve打开瞅瞅

 blue2通道有个二维码

CQR打开

 ok 找到了第一个线索

接着打开2.png 发现里面有很多txt文件,binwalk和foremost工具都分离不了

继续在010里找 在文本里又发现了很多的7z

 这些7z的后面跟的都是03 04 或者01 02或者 05 06 这应该是一个压缩包的文件头 50 4b 03 04

我们把33 7A 换成50 4b 再用360压缩包打开

好多文本 上面的排序一下看看有没有特殊的

找到了 第二个线索

继续

...

打开3.png

只有chunk7的CRC高度是正常的其他的都不正常 我们把它单独提取出来

 在010新建一个16进制文件,再转成ASCII就是第三个线索

继续...

打开4.png 文件末尾有一段base64编码

打开5.png 文件末尾也有一段base64编码

 

ok 应该已经找完了吧 把他整理一下

ZmxhZ3s0X3
1RVcmVfc
3RlZ30=
cExlX1BsY
Yzcllfc0lN

 首先第三个肯定是在最后 剩下的先一段一段的转一下看看

第一段转换后是flag开头 应该就是一个了

第二个像是乱码

第四个可以转出来应该就在中间放着

 

第五个好像也是乱码

现在思路就清晰了 1 、3 、4都已经确认了,分别是第一个位置、第五个位置和第三个位置

12453和15423

最后15423解出得到flag

ZmxhZ3s0X3 Yzcllfc0lN cExlX1BsY 1RVcmVfc 3RlZ30=

flag{4_v3rY_sIMpLe_PlcTUre_steg}

 

 

 

 

Logo

惟楚有才,于斯为盛。欢迎来到长沙!!! 茶颜悦色、臭豆腐、CSDN和你一个都不能少~

更多推荐