自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用Stegsolve解答圖片隱寫(xiě)

開(kāi)發(fā)
Stegsolve是一款圖片隱寫(xiě)分析軟件,支持常見(jiàn)的圖片文件格式,可提取GIF文件中的幀。當(dāng)兩張jpg圖片外觀、大小、像素都基本相同時(shí),可以考慮進(jìn)行結(jié)合分析,即將兩個(gè)文件的像素RGB值進(jìn)行XOR、ADD、SUB等操作,看能否得到有用的信息。

1.1 題目分析   

1.misc類題目

在i春秋給出的ctf比賽中,misc題目類型中,僅僅給出一個(gè)zip文件的下載地址,其中給出了一個(gè)提示“red0”,無(wú)任何其它提示,該zip文件為圖片文件其壓縮文件下載地址為:https://static2.ichunqiu.com/ictf/resources/attach/red0_a311fc237b75e084793fcfbfa4105bd0.zip

2.分析題意

red0是提示,以前未玩過(guò)圖片隱寫(xiě),不知道是啥意思,本次通過(guò)查看各種資料,知道其實(shí)這個(gè)就是red,選擇0值。

1.2解題思路  

1.根據(jù)提示使用setgsolve進(jìn)行分析,首先進(jìn)行圖片轉(zhuǎn)換瀏覽,簡(jiǎn)單的會(huì)直接獲取flag。

2.通過(guò)數(shù)據(jù)抽取進(jìn)行分析

根據(jù)提示選擇圖像平面通道,通過(guò)預(yù)覽查看有無(wú)flag等關(guān)鍵字,有的可能是二進(jìn)制編碼01,將二進(jìn)制編碼提取出來(lái),通過(guò)代碼進(jìn)行處理或者在線轉(zhuǎn)換。

1.3實(shí)戰(zhàn)某ctf圖片隱寫(xiě)  

1.下載Stegsolve

Stegsolve是一款圖片隱寫(xiě)分析軟件,支持常見(jiàn)的圖片文件格式,可提取GIF文件中的幀。當(dāng)兩張jpg圖片外觀、大小、像素都基本相同時(shí),可以考慮進(jìn)行結(jié)合分析,即將兩個(gè)文件的像素RGB值進(jìn)行XOR、ADD、SUB等操作,看能否得到有用的信息。StegSolve可以方便的進(jìn)行這些操作。打開(kāi)StegSolve,選擇“file”->”open”打開(kāi)一張圖片文件,然后選擇“analyse”->”image combine”選擇另一張圖片,默認(rèn)的XOR操作就可以看到隱藏的信息。點(diǎn)擊窗口下方的箭頭,可以看到不同combine方式下的結(jié)果。使用工具的優(yōu)點(diǎn)是簡(jiǎn)單方便,但是缺乏擴(kuò)展性,不能進(jìn)行批量自動(dòng)化處理。而對(duì)于自己編寫(xiě)的腳本,就可以方便的進(jìn)行擴(kuò)展。Stegsolve下載地址:http://www.caesum.com/handbook/Stegsolve.jar    

2.運(yùn)行Stegsolve

如果系統(tǒng)安裝了java運(yùn)行環(huán)境,可以直接執(zhí)行Stegsolve.jar程序,否則需要通過(guò)命令行來(lái)啟動(dòng)java -jar Stegsolve.jar

3.打開(kāi)圖片

在Stegsolve中單擊“File”打開(kāi)本列中的圖片文件ez.png,注意開(kāi)始運(yùn)行Stegsolve.jar時(shí),其軟件默認(rèn)窗口比較小,打開(kāi)后效果如圖1所示。

圖片

圖1使用Stegsolve打開(kāi)圖片

4.圖像的位平面(bit plane)

(1)圖像位平面的定義

一幅256個(gè)灰度級(jí)的圖像可以分解成8個(gè)位平面,原因就是2^8=256,換句話說(shuō)每一個(gè)像素點(diǎn)的灰度值可以由8個(gè)二進(jìn)制位來(lái)表示,所謂的位平面(bit plane)就是依次取出每個(gè)像素點(diǎn)的數(shù)值組成一個(gè)位平面。舉一個(gè)簡(jiǎn)陋的例子,假設(shè)當(dāng)前圖像就有兩個(gè)像素點(diǎn),這兩個(gè)像素點(diǎn)的灰度值分別是1和3,那么其對(duì)應(yīng)的二進(jìn)制位分別為10000000和11000000,那么該圖像分解成8個(gè)位平面依次為11、01、00、00、00、00、00、00,即通過(guò)取前面兩個(gè)二進(jìn)制位的第一位、第二位、第三位等組成第一個(gè)位平面,第二個(gè)位平面,第三個(gè)位平面等。可以發(fā)現(xiàn),每一個(gè)位平面均為一個(gè)二值圖,也就是說(shuō)像素點(diǎn)的灰度值非0即1。    

(2)位平面的matlab實(shí)現(xiàn)

   可以在matlab中通過(guò)以下代碼進(jìn)行實(shí)現(xiàn),實(shí)現(xiàn)效果如圖2所示。

X=double(rgb2gray(imread('d:\test.bmp')));%將原始圖像轉(zhuǎn)換為灰度圖像,如果本身就是灰度圖可以去掉rgb2gray函數(shù) 
[h w] = size(X); 
subplot(3,3,1); 
imshow(X,[]); 
title('原始圖像'); 
for k=1:8 
 for i=1:h 
     for j=1:w 
      tmp(i,j) = bitget(X(i,j),k);%bitget函數(shù)首先將X(i,j)處灰度值分解為二進(jìn)制串,然后取第k位 
     end 
 end 
 subplot(3,3,k+1); 
 imshow(tmp,[]); 
 ind = num2str(k); 
 imti = ['第',ind,'個(gè)位平面']; 
 title(imti); 
end

圖片

圖2實(shí)現(xiàn)位平面的效果

5.圖像平面通道瀏覽分析

在Stegsolve軟件下方中間文件使用向左或者向右的箭頭可以對(duì)圖片進(jìn)行各種變換,如圖3所示,顯示是Red plane 2圖像平面層,在Stegsolve中可以進(jìn)行Red/Green/Brue/Alpha 0-7通道的轉(zhuǎn)換,以及XOR等操作,某些題目可以直接通過(guò)該方法直接獲取flag值。

圖片

圖3圖像平面層轉(zhuǎn)換

6.提取數(shù)據(jù)分析(Data Extract)

在Stegsolve中單擊“Analyse”-“Data Extract”,如圖4所示進(jìn)行數(shù)據(jù)提取分析,在本例中,在“Bit Planes”中選擇“Red 0”,Bit Plane Order中選擇RGB。單擊Preview可以看到在上方存在存在01字樣數(shù)據(jù)。    

圖片

圖4數(shù)據(jù)提取分析

解題技巧:

一般來(lái)講出題方都會(huì)給出提示,這些暗示有些會(huì)出現(xiàn)在題目上,有的會(huì)在注釋處,例如2014年XDCTF網(wǎng)絡(luò)安全大賽的web100題,題目中的圖片hackkey.png,明確是需要進(jìn)行解答的對(duì)象,在圖像文件的注釋主有“rd rgb”的提示,根據(jù)提示選擇位圖平面順序RGB,選擇Red0即可解題,如圖5所示,獲取其key為“Xd$eC@2o14”。

圖片

圖5位圖平面Red0解題

7.保存文件并分析

(1)保存二進(jìn)制文件

在Stegsolve中可以將分析的結(jié)果保存為txt文件和二進(jìn)制文件,要根據(jù)情況,如圖圖片中已經(jīng)出現(xiàn)了key則可以保存為txt文件,直接復(fù)制key或者flag來(lái)提交答案。在本例中由于出現(xiàn)的是代碼,還需要做進(jìn)一步分析,因此將其保存為二進(jìn)制文件2,然后使用notepad打開(kāi)該文件,如圖6所示,將二進(jìn)制01字段全部保存。    

圖片

圖6打開(kāi)二進(jìn)制文件并提取二進(jìn)制代碼

(2)二進(jìn)制轉(zhuǎn)換查詢

http://www.5ixuexiwang.com/str/from-binary.php網(wǎng)站中,復(fù)制數(shù)據(jù)進(jìn)行查詢:

011001100110110001100001011001110111101101010000001100010110001101011111010010000011010001110011010111110011001101110110001100110111001001111001011101000110100000110001011011100110011101111101

如圖7所示,查詢獲取其flag為:flag{P1c_H4s_3v3ryth1ng}

圖片

圖7獲取flag值

(3)python解碼二進(jìn)制

  將一下代碼保存為ejz.py:

binary_string='011001100110110001100001011001110111101101010000001100010110001101011111010010000011010001110011010111110011001101110110001100110111001001111001011101000110100000110001011011100110011101111101'
import binascii
hex_string = "%x"%(int(binary_string, 2))    
hex_string = hex_string[ : len(hex_string) / 2 * 2]
print "key :", binascii.a2b_hex(hex_string)

執(zhí)行 python ejz.py后,獲取其flag如圖8所示。

圖片

圖8python直接解碼獲取flag

1.4python編程解決jpg格式圖片  

1.安裝

python操作圖片需要用到PIL(Python Imaging Library)庫(kù),可以通過(guò)easy_install PIL命令安裝。如果使用Mac系統(tǒng)系統(tǒng)的話,還可以用brew install pillow來(lái)安裝。安裝PIL后就可以import Image庫(kù)了。如果系統(tǒng)是64位還需要下載64位程序進(jìn)行安裝,下載地址https://files.pythonhosted.org/packages/e6/f0/7e6d01f026274363aaefb6b7e924f4b34b4a825a4bd8eaebfbd7d401af91/Pillow-2.1.0.win-amd64-py2.7.exe,32位程序可以參考進(jìn)行下載https://pypi.org/project/Pillow/2.1.0/#files

2.使用以下代碼進(jìn)行讀取

參考網(wǎng)友解決jpg格式文件的處理代碼,執(zhí)行后即可獲取二進(jìn)制代碼。

# -*- coding:utf-8 -*-
import Image
image = Image.open("hack.jgp")
width, height = image.size
binary_string = ""
for y in range(height):
    for x in range(width):
        #獲取坐標(biāo)(x, y)處的顏色值    
        r, g, b = image.getpixel((x, y))
        color = (r << 16) + (g << 8) + b
        #獲取顏色二進(jìn)制值的最后一位
        last_bit = str(bin(color))[-1]
        binary_string += last_bit
print binary_string

1.5總結(jié)  

1.jpg等圖片文件包含其它文件

最簡(jiǎn)單的處理辦法,就是使用7zip、winrar等軟件直接打開(kāi)jpg文件,如圖9所示,在jpg文件中可以看到教育學(xué).txt,打開(kāi)后,可以看到是下載鏈接地址,這個(gè)方法是目前AV圖片種子的常見(jiàn)隱藏方法。

圖片

圖9winrar打開(kāi)壓縮文件

2. 種子圖片文件生成方法

先要有張圖,比如girl.jpg,在把種子用winrar壓縮,得到壓縮文件,比如av.rar,放在同一個(gè)文件夾下。再在該文件夾里建立一個(gè)txt文件,打開(kāi)輸入 copy /b girl.jpg + vvv.rar zzz.jpg,關(guān)閉保存。將txt文件后綴名改為bat,運(yùn)行以后就會(huì)生成一個(gè)文件zzz.jpg,就是圖種。使用時(shí)將zzz.jpg后綴名改為rar,解壓即得種子。

3.二維碼解碼

在有些題目中會(huì)給出二維碼圖片或者地址,將圖片上傳到http://tool.chinaz.com/qrcode網(wǎng)站后,會(huì)直接給出其flag值:flag{AppLeU0},如圖9所示。在進(jìn)行解碼過(guò)程中要特別注意,,隱寫(xiě)的載體是PNG或者bmp格式可以直接讀取,而對(duì)于經(jīng)過(guò)有損的壓縮,例如jpg格式就不行。    

圖片

圖9獲取flag值

4.修改頭文件

有些題目會(huì)故意將文件頭信息類似“GIF8”去掉,這個(gè)時(shí)候通過(guò)觀察,將其修改成gif的頭文件格式即可正常查看。gif文件會(huì)通過(guò)幀來(lái)隱藏flag,推薦是用Namo_GIF_gr工具進(jìn)行查看。

5.圖片或者壓縮文件注釋信息等

在圖片文件或者壓縮文件注釋信息中往往會(huì)隱藏密碼或者flag,因此需要對(duì)其進(jìn)行分析和查看。

6.binwalk及foremost處理

(1)binwalk下載地址

https://github.com/ReFirmLabs/binwalk

(2)安裝  

git clone https://github.com/ReFirmLabs/binwalk.git

(3)分析文件

 binwalk ctf.jpg

 加入分析結(jié)果中表明從140147處開(kāi)始,存在另外一個(gè)文件。

(4)分離文件    

 dd if= ctf.jpg of= ctf -1.jpg skip=140147 bs=1

這里if是指定輸入文件,of是指定輸出文件,skip是指定從輸入文件開(kāi)頭跳過(guò)140147個(gè)塊后再開(kāi)始復(fù)制,bs設(shè)置每次讀寫(xiě)塊的大小為1字節(jié),表示從ctf.jpg中分離出來(lái)ctf-1.jpg文件。

(5)安裝foremost

apt-get install foremost

(6)提取及分析文件

 foremost ctf.jpg

 當(dāng)我們使用這行命令后,foremost會(huì)自動(dòng)生成output目錄存放分離出文件,查看其文件夾下文件即可。

參考文章:

https://blog.esu.im/71.html

http://www.poboke.com/study/2014-xdctf-network-security-competition-web100.html

https://www.secpulse.com/archives/4855.html    

責(zé)任編輯:龐桂玉 來(lái)源: 小兵搞安全
相關(guān)推薦

2020-09-23 17:16:52

Python技術(shù)工具

2019-04-08 10:26:20

2019-07-01 13:06:45

隱寫(xiě)術(shù)網(wǎng)絡(luò)安全威脅

2018-05-18 14:40:34

2021-05-25 11:40:27

網(wǎng)絡(luò)安全隱寫(xiě)互聯(lián)網(wǎng)

2021-01-27 21:53:50

版權(quán)保護(hù)隱寫(xiě)

2013-12-04 09:31:10

2024-04-16 11:49:08

2021-02-04 20:57:19

顯隱術(shù)版權(quán)字符

2015-06-30 12:39:33

公有云問(wèn)題解答

2015-07-02 14:27:23

2011-03-28 17:45:03

nagios問(wèn)題

2010-03-30 13:02:51

Oracle版本

2010-11-16 15:11:52

Oracle隱式游標(biāo)

2013-04-27 17:03:57

2011-07-12 14:38:35

XenServer 5

2010-08-26 13:24:15

CSSmargin

2010-01-20 10:27:07

VB.NET隱式類型局

2009-09-08 14:53:46

CCNA考試

2009-12-07 16:29:46

Juniper認(rèn)證考試
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)