1. 网站下载附件
给到一个压缩包,解压得到一张初音未来的图片:
尝试用Stegsolve打开图片查看信息,发现可以正常打开,扫了一遍没有发现什么有用的信息。
2. 修改图片信息
丢入010Editor,文件结构很完整,但是左下角提示crc校验错误:
猜测是图片的宽高不对,于是修改高度,又联想到题目所给的“flag一分为二”,于是就把高度设为宽度的一半(其实毫无根据),即1024像素,得到一半flag:
巧合的是,猜的高度1024也是这张图的原始高度,参考png宽高被改,crc无脑爆破_图片怎么查看crc-CSDN博客的Python代码,对图片宽高进行爆破:
发现原图宽*高为2048*1024,瞎猫碰见死耗子了,修改宽高字节数,重新用010Editor打开图片发现crc校验不报错了。
那么,另一半flag在哪呢?
3. 重复不断试错
(1)修改宽度,看是否有隐藏信息。
无用,且每次修改宽度图片都失真(不知道什么原理,求教)。
(2)查看压缩包信息。
猜测另一半flag会不会在一开始给的压缩包上,于是把压缩包丢入010Editor查看,无果,未发现有用信息。
(3)猜测LSB隐写。
用Stegsolve打开图片,使用Extract Preview功能,提取图片Red、Green、Blue三色的0通道信息,导出txt,搜索“CTF”,无果,病急乱投医了属于是。
4. 原来是盲水印
百度搜索“图片隐写方式”来给自己科普一下,发现有一种隐写方式为“数字水印”,其中一种方式就是“盲水印隐写”方式,与傅里叶变换有关系(超纲了,后边再好好看看琢磨琢磨),文中提到盲水印隐写工具:隐形水印工具。下载隐形水印工具,导入图片,提取盲水印,得到另一半flag:
两半拼接,得到完整flag。
第一次接触盲水印,完全不知道有这种隐写方式,也算是拓展知识面了,题刷的越多,了解到的越多,慢慢来不着急。