Lemon's blog

CTF隐写总结

Record my learning process of CTF.

字数统计: 1.5k阅读时长: 5 min
2019/05/09 Share

CTF隐写总结

一:LSB隐写

LSB概念
LSB,英文 least significant bit,中文义最低有效位。
对于一个给定的数据串,其最低有效位就是拥有最小单位数值的那一位.

关于LSB隐写的详细介绍 LSB详细介绍
关于LSB隐写的详细算法 LSB详细算法
关于LSB隐写的总结博客 LSB隐写总结
隐写技巧:PNG文件中的LSB隐写

在这里插入图片描述
打开以后是一张这样的图片
在这里插入图片描述
题目已经提醒这道题属于LSB隐写,那么就发动查百度、谷歌大法吧。
经过查找,会发现需要用这个神器来处理这种题目。
在这里插入图片描述
但打开这个软件需要有java,所以还得下载,最好也配置一下环境变量。
java详细配置
配置好之后那,用java打开Stegsolve.jar
在这里插入图片描述
将图片打开后,通过下方的按钮切换不同的通道。结果你就会发现一个很不一样的东西。
在这里插入图片描述
红色通道前六张都没有太大的变化,但是问题出现在第七张。
在这里插入图片描述
可以明显的看到,右上方隐藏了一些东西。
然后,通过观察,发现,green通道和blue通道也是如此。
那接下来就进行数据提取在这里插入图片描述
因为发现三种颜色都是在0通道时发生了不同,所以勾选三个颜色的最低位。
在这里插入图片描述
结果flag就出来咯!!
题是很简单,但关键是要理解为何如此做,做题不难,难在理解为何这样做。
大牛的博客——介绍为何勾选最低位的0
在这里插入图片描述
在这里插入图片描述
这道题的解法与上一道也是一样的。

二:双图

在这里插入图片描述
打开后是两张图片,而且两张图片一样。???这时就该敏感了,因为大多两张图片相同的题型都是盲水印,另外一种就是双图,但题目已经提示了是双图,所以就安装双图的做法去解决这道题。
在这里插入图片描述
在这里插入图片描述
(两张图片大小不一样,第二张一定隐藏了一些信息)
用Stegsolve打开第一张图
在这里插入图片描述
再使用Image combiner( 图像结合),与第二张结合,看看会发生什么变化。(我觉得这里就是两张图片进行对比,前面可以看到第二张图片比第一张图片大了30多KB,所以那多出的30多KB的内容会出现在结合后的图片中
在这里插入图片描述
结果在变换通道中找到一个二维码,扫吧。。。结果什么也扫不出了。。。
在这里插入图片描述
将这张图片保存下来,再用Stegsolve打开,变换通道,可以看到三张不同的二维码。
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
下面就是扫码工作了,( 推荐支付宝扫码,微信我半天都没扫出来,还以为错了。。。)扫过之后,有提示,有密文,解密就能得出flag了

三:盲水印

盲水印介绍:
盲水印隐蔽性强,给水印数据进行编码过后不易被破解出来,而且不会破坏图片美观,且又能很好的保护图片版权。

详细介绍盲水印的一些博客:
介绍盲水印
盲水印原理
在这里插入图片描述
打开之后是两张相同的图片
在这里插入图片描述
在这里插入图片描述
发动查百度、谷歌大法,破解盲水印,需要脚本或工具。

BlindWaterMark脚本
但要注意这个是py2的脚本,如果下载的是py3就会出现语法错误。(这里卡了我一晚上)

修改方法是:py3自带了一个脚本2to3.py,可以将python2的程序自动转为python3的形式。但是不熟悉python语法,到后面还是会出现错误。(所以最好先不要用这个脚本去解题,待熟悉python语言后再用,否则就算知道哪里错了,也不会改大牛的博客介绍如何修改

这里介绍另一个脚本
blind-watermark
这个脚本可以选择下载py3的脚本,这样就可以减少一些修改麻烦。

操作语法
python decode.py –original ori.png –image res.png –result extract.png
注意: 两张图片分辨率要相同,否则会报错。

在下载脚本的目录里打开cmd,输入命令。
在这里插入图片描述
出现一个图片,但是打开却。。。
在这里插入图片描述
黑黑的。。。啥也看不见。。。
在这里插入图片描述
既然脚本这条路走不通,那只好偷懒了,下载工具吧。
数字盲水印&隐形水印制作工具WaterMarkH V1.2下载地址
在这里插入图片描述
两张图片相同,一定是图片大的那一张隐藏有信息,所以试试第二张。
在这里插入图片描述
flag出来了(感悟:有时如果是脚本对图片进行盲水印的话,那只能用脚本才能解开。但如果用工具添加水印的话,也只能用工具解开)

四:画图

在这里插入图片描述
zip里面放了一张图片
打开以后是一个很可爱的女孩子
在这里插入图片描述
用Winhex打开图片,发现有很大的不同,上面全是乱码,但是到了下面全是数字,估计藏有猫腻。
在这里插入图片描述
ctrl+A全选,然后再将这一堆数字给复制出来
在这里插入图片描述
再用Notepad++打开
在这里插入图片描述
提示的是画图,在坐标系里画图需要坐标,现在给的一堆数字是十六进制的数,在Notepad++中转换一下,看是否能出现坐标。
在这里插入图片描述
结果确实出现了坐标
在这里插入图片描述
那下面就实现画图吧,怎么画。。。我还是去找百度、谷歌吧

经过查找需要这个画图工具
在这里插入图片描述
但是得注意一点的是,坐标必须满足这个工具的格式。必须改为这种格式的坐标
在这里插入图片描述
改成这样很简单,只需要点击替换,把( 和)都替换掉,把逗号改为空格就了。
在这里插入图片描述
然后将改好的文档保存,放入gnuplot的bin目录里,打开bin目录gnuplot.exe,输入命令(我理解的是要执行的文件必须和这应用程序放在同一个目录,否则无法执行,会报错).
在这里插入图片描述在这里插入图片描述
输入命令

plot “文件名”

在这里插入图片描述
用支付宝一扫就🆗了
在这里插入图片描述

CATALOG
  1. 1. CTF隐写总结
    1. 1.0.1. 一:LSB隐写
    2. 1.0.2. 二:双图
    3. 1.0.3. 三:盲水印
    4. 1.0.4. 四:画图