CTF中常遇到的圖片隱寫
- 2020 年 3 月 6 日
- 筆記
文件格式:對於PNG文件來說,其文件頭總是由固定的位元組來描述的,剩餘的部分由3個以上的PNG數據(Chunk)按照特定的順序組成。
文件頭:89 50 4E 47 0D 0A 1A 0A + 數據塊 + 數據塊 + 數據塊…..
修改圖片高度
如果linux下打不開,windows下打得開可能就是該高度了。
左邊是寬度,圈起來的是高度,把高度改的大一點。

文件尾追加文件
如果是追加文本,直接十六進位編輯器查看就可以
如果追加的是圖片或者壓縮包之類的,可以使用 binwalk 或者 foremost 來提取出來
元數據(Metadata),又稱中介數據、中繼數據,為描述數據的數據(Data about data),主要是描述數據屬性(property)的資訊,用來支援如指示存儲位置、歷史數據、資源查找、文件記錄等功能。
元數據中隱藏資訊在比賽中是最基本的一種手法,通常用來隱藏一些關鍵的 Hint 資訊 或者一些重要的比如 password 等資訊。
聽著挺唬人實際就是文件屬性
這類元數據可以 右鍵文件 -> 屬性 查看
outguess
kali下使用
outguess -r avatar.jpg -t 1.txt
把 avatar.jpg 圖片破解資訊的數據輸出到 1.txt
https://pan.baidu.com/s/1avAdUWvzdWng_dQVcW-Zmw
提取碼:uwzg
F5隱寫加密:
java Embed 原圖片.jpg 生成的圖片.jpg -e 隱藏的文件.txt -p 密碼
F5隱寫解密:
java Extract 生成的圖片.jpg -p 密碼
演示:


ps. 之所以使用 jview 是看自帶的 .bat 文件是用的這個,但是用 java 貌似沒啥影響

https://pan.baidu.com/s/1IajuX2HQVSVONkbCfjobfQ
提取碼: uuch
安裝打開後介面是這樣的:點擊紅框框出來的

選擇圖片比較

上面還有一些選項可以試試

在數據流中可包含多個連續順序的影像數據塊。
採用 LZ77 演算法的派生演算法進行壓縮。
可以用 zlib 解壓縮。
IDAT塊只有當上一個塊充滿時,才會繼續下 一個新塊
如果有 IDAT 還沒填滿就填充了下一個就要考慮是不是有問題
命令:
pngcheck.exe -v sctf.png 可以查看
也可以使用 Stegsolve 的 Analysis -> File Format 有詳細介紹

這就說明這 138 是認為添加的,把這個位置的內容保存出來,再進行其他操作(文本進位轉換、寫圖片)
PNG文件中的影像像數一般是由RGB三原色組成,每一種顏色佔用8位,取值範圍為 0×00~0xFF,即256種顏色,一共包含了256的三次方的顏色,即16777216(1千677W)種顏色。人類的眼睛可以區分約1000萬種不同的顏色,這就意味著人類的眼睛無法區分餘下的顏色大約有6777216(677W)種
LSB隱寫就是修改RGB顏色分量的最低二進位位(LSB),每個顏色都會有8bit,LSB隱寫就是修改了像數中的最低的1Bit,而人類的眼睛不會注意到這前後的區別,每個像數可以攜帶 3Bit的資訊,這樣就把資訊隱藏起來了
使用 Stegsolve 各個通道都看看,或者 Analysis -> Data Extract 合起來看看,有什麼熟悉的保存出來
在某一幀圖片藏著資訊,用 ps 或者愛奇藝萬能播放器也可以一幀一幀的看。
每一幀圖片間隔時間,可能藏著規律,或許是二進位編碼、或許是摩斯密碼。
安恆的一道題:貓片,先是 LSB 提取一個 png,然後改高度得到完整的取反色,下載文件,得到 RAR,使用 NTFS 流隱寫,打開軟體,然後用 winrar 解壓縮,然後掃描一下,發現一些其他的東西,導出就可以了。
