✨前言
盲水印同樣是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
版權所有,如需轉載請注明出處。