CTFshow

菜狗杯

1、flag一分为二

打开一看壁纸图,毫无疑问隐写题,用Stegsolve分析下,发现CRC对不上,改过的图

image-20231226221346999.png

好办,010看一下,没啥大问题,又要跑脚本

#png图片爆破宽高
import zlib
import struct
file = 'miku.png'
fr = open(file,'rb').read()
data = bytearray(fr[12:29])
crc32key = 0x7507b944
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(width,height)
            print(data)
            print("It's done!")

跑一下CRC修补好,需要改这几位,手动010改一下(脚本也可以改,懒得弄了) image-20231226221905486.png image-20231226221858585.png

打开图片,就给了右下角半个flag

image-20231226221930795.png

剩下半个盲猜是盲水印,watermark试一下

image-20231226222148133.png

拼凑得到flag:ctfshow{FirstP@RTSecondP@rTMikumiku~}

2、You and me

先用010看了下,没啥东西,排除图片修改,换Stegsolve测了下,没啥CRC的错位,看了下两张图大小不一,估计就是盲水印

常规盲水印没问题,需要脚本帮助

image-20231226220707831.png

借助大佬脚本

https://github.com/chishaxie/BlindWaterMark#blindwatermark

git clone下来,安装好脚本

因为numpy模块下载的版本过多发生冲突而报错,所以最好先卸载一遍 numpy pip uninstall numpy再重新安装 pip install numpy
这道题目脚本需要先下载一个opencv-python模块来解决无法下载 'cv2’模块的问题,另外其版本也有要求,安装命令如下:pip install opencv-python install "opencv-python-headless<4.3"

cmd执行脚本,结果输出到flag.png

python bwmforpy3.py decode you.png you_and_me.png flag.png
ctfshow{CDEASEFFR8846}

falg.png