MISC-隱寫的總結
這周做了幾個隱寫題,感覺非常有趣。看了許多大佬的博客,最終才完整的做完這些隱寫題。爲了加深自己的理解,還是有必要總結一下的。畢竟學以致用,學以會用!!
解隱寫題的一般思路:
- 首先看看圖片是不是圖種
- 然後使用binwalker分析圖片,如果是有文件合成,分離
- 有時信息藏在備註中
- 工具stegsolve
- 編程分析
1、LSB隱寫
簡介:
LSB(英文 least significant bit)即最低有效位。LSB加密是信息隱藏中最基本的方法。由於人們識別聲音或圖片的能力有限,因此我們稍微改動信息的某一位是不會影響我們識別聲音或圖片的。
用法:
通常來說LSB加密用在無損壓縮的數據格式文件中,例如圖像中的png格式、bmp格式和音頻的wav格式。由於這三種格式未對源數據進行有損壓縮,因此可以將信息隱藏起來。
對於圖像文件LSB的特徵很明顯,通常將信息隱藏在某一個顏色通道中。我們可以查看圖片的每個像素點的RGB值,或者使用stegsolve工具進行查看。 stegsolve工具下載
需要下載Java配置Java環境或者只下載Java,用Java打開stegsolve.jar文件
由於圖像是由像素構成的,每個像素有8位(對於BMP圖像來說),通常最後一位的變化,通過肉眼是無法察覺的
例1:
下載題目文件並解壓後,發現一個名叫taqing.png的圖片。因爲題目是“LSB”,所以這張圖片應該進行了LSB隱寫。
用stegsolve打開taqing.png,並選擇Analyse的Data Extract
把Red、Green、Blue的最低有效位0那一列打對勾(原因),並點擊Preview,在最上面會發現flag了!!
flag是flag{have a good time!}
例2:
下載題目文件並解壓後,發現一個名叫LSBencode.png的圖片。因爲題目是“LSB2”,所以這張圖片也應該進行了LSB隱寫。
用stegsolve打開LSBencode.png,並選擇Analyse的Data Extract
把Red、Green、Blue的最低有效位0那一列打對勾(原因),並點擊Preview,在最上面會發現flag了!!
2、盲水印
由題目可知,此題爲盲水印,所以使用bwm腳本(python2)另一個腳本decode腳本。
並且這兩個不完全一樣,用其中一個加上水印,用另一個解不開,所以還是都存起來吧。
運行腳本發現沒有cv2這個模塊,使用下面的命令安裝cv2
pip install opencv-python
接下來:
如果是bwm腳本運行
python bwm.py decode 1.png 2.png flag.png
其中1.png和2.png是解壓所得圖片,flag.png是所分離出來的水印。
如果是decode腳本運行
python decode.py --original 1.png --image 2.png --result flag.png
。
其中1.png和2.png是解壓所得圖片,flag.png是所分離出來的水印。
另外推薦一個加盲水印和分離盲水印的神器:WaterMarkH下載
例:
下載題目文件並解壓後,發現兩張圖片:text.jpg和text2.jpg。因爲題目是“盲水印”,所以這道題應該是找盲水印。
把文件後綴改成.png格式,結果我試了兩個腳本都沒有找到盲水印,我以爲是因爲python版本的問題,然而並不是。。。所以這道題應該是使用WaterMarkH加的盲水印,所以直接使用這個工具就找到了盲水印
3、雙圖
例:
下載題目文件,解壓出來就是雙圖first.png和second.png,先用stegslove打開first.png保存反色圖片爲1.bmp
然後打開保存的反色圖片1.bmp,選擇stegslove的image combiner結合second.png,保存結合的圖片爲solved.bmp
然後打開保存的結合圖片solved.bmp,再用stegslove對二維碼變化一下,得到三張二維碼
掃描結果是DES 6XaMMbM7
和一長串字符,很顯然是des加密,祕鑰是6XaMMbM7,然後對長串字符進行DES解密,即可得到flag!!
4、畫圖
例:
根據題目可知,此題是畫圖
用winhex打開發現圖片後面有很多的數據
複製下來保存爲1.txt文件用notepad++轉換一下編碼
這就是座標了,這樣來畫圖吧 轉換成gnuplot能識別的格式
保存1.txt文件,下載gnuplot畫圖工具,把1.txt文件和畫圖工具放入同一路徑,打開gnuplot.exe,輸入命令plot "1.txt"
進行畫圖
掃描二維碼,即可得到flag!!
隱寫題總結之後,果然讓我對此更加理解了,開心!!!