1. 程式人生 > >CTF常用隱寫套路

CTF常用隱寫套路

隱寫術是一門關於資訊隱藏的技巧與科學,所謂資訊隱藏指的是不讓除預期的接收者之外的任何人知曉資訊的傳遞事件或者資訊的內容。隱寫術的英文叫做Steganography,來源於特里特米烏斯的一本講述密碼學與隱寫術的著作Steganographia,該書書名源於希臘語,意為“隱祕書寫”。

        在CTF題目中,圖片隱寫題屬於雜項的一部分,題目較為簡單。本文大致梳理了下CTF比賽中圖片隱寫題的常用套路,如果未能看出題目破題點,可按照以下方法順序逐一嘗試:

1.    檢視圖片基本資訊(對應題目難度:低)

       該類題通過檢視圖片基本資訊,可以直接獲取FLAG,主要方法如下:

        A)右鍵檢視圖片屬性,檢查圖片簡介、備註中是否有FLAG;

        B)將圖片用編輯器工具開啟,如使用記事本、notepad+、winhex,檢查是否包含FLAG;

2.    多圖層檔案(對應題目難度:中)

       玩CTF的大概都聽過一個神器 - stegsolve,用它把圖片開啟,該軟體也有兩種用途:

        A)一直按右箭頭(或者左箭頭),說不定就會出來一個二維碼 ;

        B)提取低位資訊,這涉及到圖片隱寫的一個大類,lsb隱寫,一般都藏在0,1,2這些低位裡面,在軟體功能選項中檢視Analyse→Data Extract,逐個除錯。

3.    複合檔案(對應題目難度:中)

        CTF比賽中經常碰到png檔案中複合其他檔案的情況,如就是圖片後面再放點壓縮包、txt文件、或者再新增一張圖片,具體操作方法如下:

copy /b a.jpg+b.zip c.jpg

copy /b a.jpg+b.txt c.jpg

copy /b a.jpg+b.jpg c.jpg

解題思路:通常這類圖片比較大,可將圖片字尾改為zip或者rar,解壓即可。也可以用winhex找圖片的開頭結尾標誌,手動分離出來,也可以使用kali下的工具binwalk或者foremost分出來;

    注:比較高階點的圖片隱藏圖片的話,有的會把第二張圖片頭給去掉,然後把兩張圖片合在一起,這樣那些提取工具就沒用了,這個時候需要稍微細心點,用winhex找第一張圖片的尾部,然後把第二張圖片的頭給加一下,再進行分離操作。

4.    改圖片高度(對應題目難度:中)

       CTF比賽中可利用16進位制編輯工具更改圖片的高度,使圖片只顯示一部分,下面的部分被隱藏,嗯,這是個藏東西的好辦法!

       當以上方法均不可以得到FLAG,且圖片長寬比例詭異時,可以嘗試改圖片大小,下面介紹找圖片寬度和高度的標誌位的方法:

       A)對於png檔案,其第二行第六列是高度位,改這一位即可;

       B)對於其他格式圖片,可以先看看圖片的屬性,得到寬高值,轉成16進位制數,搜尋該16進位制值就能找到標誌位了;

        本文僅列舉了幾種博主目前遇到的CTF圖片隱寫套路,歡迎大家補充!