CTFshow
菜狗杯
1、flag一分为二
打开一看壁纸图,毫无疑问隐写题,用Stegsolve分析下,发现CRC对不上,改过的图
好办,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改一下(脚本也可以改,懒得弄了)
打开图片,就给了右下角半个flag
剩下半个盲猜是盲水印,watermark试一下
拼凑得到flag:ctfshow{FirstP@RTSecondP@rTMikumiku~}
2、You and me
先用010看了下,没啥东西,排除图片修改,换Stegsolve测了下,没啥CRC的错位,看了下两张图大小不一,估计就是盲水印
常规盲水印没问题,需要脚本帮助
借助大佬脚本
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}