知識點
1.pngLSB隱寫
步驟
方法一:zsteg
打開附件,是一張圖片,打開看不懂(其實由兩種顏色構成,0和1),用zsteg查看,發現隱寫了一張jpg圖片,使用zsteg提取。打開jpg圖片得到flag。
zsteg -e b1,r,lsb,xy file.png > 1.jpg
方法二:stegsolve
用stegsolve打開,選擇data extract ,因為圖片由紅和綠兩種顏色組成,所以可以只勾選紅或者綠,或者都勾選,在勾選red通道時發現隱寫數據的開頭為FFD8FF,這是jpg圖片的頭部。
保存為二進制文件明為jpg后綴。打開圖片得到flag。
方法三:腳本(官方的wp)
from PIL import Image
import os
import bitstringimage_name = 'b.png'
current_path = os.path.dirname(__file__)
im = Image.open(os.path.join(current_path,image_name))
image_width = im.size[0]
image_height = im.size[1]
# load pixel
pim = im.load()
bin_result = ''
for row in range(image_height):for col in range(image_width):if pim[col,row][0] == 255:bin_result += '1'else:bin_result += '0'
with open(os.path.join(current_path,'result.jpg'),'wb') as f:f.write(bitstring.BitArray(bin=bin_result).bytes)