日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

CTF中图片隐藏文件分离方法总结

發布時間:2023/12/13 综合教程 26 生活家
生活随笔 收集整理的這篇文章主要介紹了 CTF中图片隐藏文件分离方法总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

0x00 前言

在安全的大趨勢下,信息安全越來越來受到國家和企業的重視,所以CTF比賽場次越來越多,而且比賽形式也不斷的創新,題目也更加新穎有趣,對選手的綜合信息安全能力有一個較好的考驗,當然更好的是能從比賽有所收獲,不斷學習和總結提升自己的信息安全能力與技術。轉到CTF比賽上,通常在CTF比賽中常有與隱寫術(Steganography)相關的題目出現,這里我們討論總結圖片隱藏文件分離的方法,歡迎大家補充和交流:P

0x01 分析

這里我們以圖片為載體,給了這樣的一樣圖片:

首先我們需要對圖片進行分析,這里我們需要用到一個工具binwalk,想要了解這個工具可以參考這篇Binwalk:后門(固件)分析利器文章,以及kali官方對binwalk的概述和使用介紹。

這里我們就是最簡單的利用,在binwalk后直接提供固件文件路徑和文件名即可:

# binwalk carter.jpg

當我們使用這行命令后,binwalk就會自動分析這個jpg文件:

# binwalk carter.jpg
 
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             JPEG image data, JFIF standard 1.01
382           0x17E           Copyright string: "Copyright (c) 1998 Hewlett-Packard Company"
3192          0xC78           TIFF image data, big-endian, offset of first image directory: 8
140147        0x22373         JPEG image data, JFIF standard 1.01
140177        0x22391         TIFF image data, big-endian, offset of first image directory: 8

從上面的內容顯然看得出來這個jpg文件還隱藏著另一個jpg文件,從140147塊偏移開始就是另一張jpg。

0x02 分離

在得到隱藏信息之后我們下一步就是把另一張jpg分離出,以下討論幾種方法:

(1)使用dd命令分離(linux/unix下)

我們可以使用dd命令分離出隱藏文件:

# dd if=carter.jpg of=carter-1.jpg skip=140147 bs=1

可以參考dd命令詳解,這里if是指定輸入文件,of是指定輸出文件,skip是指定從輸入文件開頭跳過140147個塊后再開始復制,bs設置每次讀寫塊的大小為1字節 。

最后我們可以得到這樣的一張carter-1.jpg圖片:

(2)使用foremost工具分離

foremost是一個基于文件文件頭和尾部信息以及文件的內建數據結構恢復文件的命令行工具,win可以下載地址,Linux可以

通過下面命令安裝使用:

# apt-get install foremost

安裝foremost后你可以使用foremost -help查看使用幫助,這里最簡單分離文件的命令為:

# foremost carter.jpg

當我們使用這行命令后,foremost會自動生成output目錄存放分離出文件:

(3)hex編輯器分析文件

至于hex編輯器有很多,win下有用得較多的winhex,UltraEdit等,linux下有hexeditor等,這里我們以winhex為例手動分離,在分離之前我們需要知道一點關于jpg文件格式的知識,jpg格式文件開始的2字節是圖像開始SOI(Start of Image,SOI)為FF D8,之后2個字節是JFIF應用數據塊APPO(JFIF application segment)為FF E0 ,最后2個字節是圖像文件結束標記EOI(end-of-file)為FF D9 ,如果你想詳細了解更多關于這方面的知識可以參考jpg文件格式分析一文。

用winhex打開圖片,通過Alt+G快捷鍵輸入偏移地址22373跳轉到另一張jpg的圖像開始塊,可以看到FF D8圖像開始塊。

而圖像結束塊FF D9

選取使用Alt+1快捷鍵選取FF為開始的塊,Alt+2選取D9為結束塊,然后右鍵->Edit->Copy Block->Into New File保存相應的文件后綴,例如new.jpg

0x03 其他

還有一種特例,它是事先制作一個hide.zip,里面放入隱藏的文件,再需要一張jpg圖片example.jpg,然后再通過命令 copy /b example.jpg+hide.zip output.jpg生成output.jpg的新文件,原理是利用了copy命令,將兩個文件以二進制方式連接起來,正常的jpg文件結束標志是FF D9,而圖片查看器會忽視jpg結束符之后的內容,所以我們附加的hide.zip就不會影響到圖像的正常顯示。(參考AppLeU0的隱形術總結)

針對這種特例我們可以直接將jpg文件改為zip文件后綴(其他文件如rar文件也類似),就可以看到hide.zip壓縮包里隱藏的文件。

比如當我們得到一張wh3r3_is_f14g.jpg文件:

當我們用winhex打開文件,發現wh3r3_is_f14g.jpg文件最后數據塊不是FF D9 jpg文件的結束標志,而是zip文件的結束標志。

我們直接將文件改名為wh3r3_is_f14g.zip,打開得到flag.txt。

最后打開flag.txt得到flag。

0x03 后話

圖片隱寫方式有很多種,在此只介紹了這一種,如果以后有機會會寫其他的圖片隱寫,如果對隱寫感興趣這里推薦一本機械工業出版社的《數據隱藏技術揭秘:破解多媒體、操作系統、移動設備和網絡協議中的隱秘數據》,如果你不想購買實體書,可以下載pdf版。

這里我把所有圖片打包了zip,如果有需要自行下載吧: P

Steganography_Pictures.zip

轉自:https://www.hackfun.org/learnrecords/summary-of-image-hiding-files-in-CTF.html

總結

以上是生活随笔為你收集整理的CTF中图片隐藏文件分离方法总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。