图片隐写

题目:bugku 隐写

下载好打开是一张图片:

开始以为是两种不同的文件结合在一起,然后下载了foremost工具试着分离,结果分离后还是这一张图片

从网上找到了相关的知识,原来需要改变图片的高度(PNG为无损压缩格式)

(固定)八个字节89 50 4E 47 0D 0A 1A 0A为png的文件头
(固定)四个字节00 00 00 0D(即为十进制的13)代表数据块的长度为13
(固定)四个字节49 48 44 52(即为ASCII码的IHDR)是文件头数据块的标示(IDCH)
(可变)13位数据块(IHDR)
    前四个字节代表该图片的宽
    后四个字节代表该图片的高
    后五个字节依次为:
    Bit depth、ColorType、Compression method、Filter method、Interlace method
(可变)剩余四字节为该png的CRC检验码,由从IDCH到IHDR的十七位字节进行crc计算得到。

用010editor打开,则00 00 01 F4代表宽,00 00 01 A4代表高

查看图片属性

则将高改为宽一样的像素,即将A4改为F4

MISC图片隐写解题思路

环境:Ubuntu

1.查看文件格式:

file a.png

2.查看文件是否有隐藏数据:

binwalk a.png

3.分离文件:

binwalk -e a.png

4.分析Gif:

identify -format "%s %T \n" 'a.gif'

%T为每一帧的间隔

windows下分析工具:stegsolve

5.查看图片详细信息:

exiftool a.png

制作隐写题目:

exiftool -copyright="sqlsec{th13_1s" -comment="_1m4g3_stg}" 'a.png'

6.输出文件中可打印的字符串:

strings a.png

搜索:

strings a.png | grep 'flag'