【CTF】图片隐写术 · 盲水印
✨前言
盲水印同样是CTF Misc中极小的一个知识点,刚刚做到一题涉及到这个考点的题目。
感觉还挺有意思的,就顺便去了解了下盲水印技术。
数字水印
数字水印(Digital Watermark)一种应用计算机算法嵌入载体文件的保护信息。数字水印技术,是一种基于内容的、非密码机制的计算机信息隐藏技术。它是将一些标识信息(即数字水印)直接嵌入数字载体当中(包括多媒体、文档、软件等)或是间接表示(修改特定区域的结构),且不影响原载体的使用价值,也不容易被探知和再次修改。但可以被生产方识别和辨认。通过这些隐藏在载体中的信息,可以达到确认内容创建者、购买者、传送隐秘信息或者判断载体是否被篡改等目的。数字水印是保护信息安全、实现防伪溯源、版权保护的有效办法,是信息隐藏技术研究领域的重要分支和研究方向。
盲水印技术
参考:https://developer.qiniu.com/dora/api/5915/blind-watermarking-processing
这里再推荐两个知乎专栏关于盲水印实现的知乎专栏
✨CTF解题
题目链接:https://adworld.xctf.org.cn/task/answer?type=misc&number=1&grade=1&id=4842&page=2
Misc基本操作
下载得到zip解压得到PNG图片
检查详细信息 010查看图片
Kali下binwalk分析文件发现隐写zip foremost分离文件
解压分离后的zip得到
解压分离后的zip解压得到文件里的zip(!禁止套娃)
有两张图片
stgesolve混合两张图片没有发现
查看wp了解到考点是盲水印
GitHub上有提取合成盲水印的脚本 Python2/3都有
https://github.com/chishaxie/BlindWaterMark
Python实现盲水印提取
运行脚本前需要安装两个模块
可以使用如下命令批量安装
pip install -r requirements.txt
//来源GitHub项目主页 未测试 应该可行
先需要安装opencv
选择如下其中一条命令安装
pip install opencv-python
pip3 install opencv-python
//本机Python2/3环境都有而且共存 这里装Python3的
需要先更新pip 按照提示命令操作就行
更新完pip后达到运行要求
还需要安装matplotlib
选择如下其中一条命令安装
pip install matplotlib
pip3 install matplotlib
python -m pip install matplotlib
使用如下其中一条命令提取盲水印(选择哪条取决于运行的是Python2脚本还是Python3)
python2 bwm.py decode day1.png day2.png flag.png
python bwmforpy3.py decode day1.png day2.png flag.png --oldseed
//第一条命令是因为本机配置了使用python2命令运行Python2环境
//第二条命令后加--oldseed是因为直接跑了Python3脚本生成的flag什么都看不清
如下图(真的什么都看不清!)
可以在GitHub项目主页上了解到:注意程序python2和python3版本的加解密结果会有所不同,主要原因是python2和python3 random的算法不同,如果要让python3兼容python2的random算法请加 --oldseed参数。
运行脚本后提取查看flag
Flag:wdflag{My_c4t_Ho}
结束。
Python实现盲水印合成
Github项目主页文件说明:
合成盲水印图 使用如下命令:
python bwm.py encode hui.png wm.png hui_with_wm.png
✨盲水印软件
去了解下实现盲水印的软件:WaterMake
吾爱破解首发:https://www.52pojie.cn/thread-709668-1-1.html
现在已取消软件下载,并且新帖已经被删除。
不过网络上还是可以找到这款工具的,感觉还是很不错的。
软件界面
破坏测试
⭐转载请注明出处
本文作者:双份浓缩馥芮白
原文链接:https://www.cnblogs.com/Flat-White/p/13517001.html
版权所有,如需转载请注明出处。