<总结>CTF·图片隐写

(前言:图片隐写作为CTF misc中的一类题目,由名可知,就是在各种不同类型的图片中找flag。)

一.图片属性中找flag:入门级别的图片隐写题就是在图片属性中找答案,属性中有图片的详细信息,备注中常常出现关键信息和flag。

例:

二.txt文本文件中找flag:简单的图片隐写,用记事本打开,会有不同类型的编码或者flag隐藏在一群乱码中。加密编码通常隐藏在开头或末尾,flag就用Ctrl+F收索关键词 即可。

例:

三.010Editor中找flag<注意:这里说找flag其实不是所有flag直接隐藏在010Editor中,而是找的过程中都用到了010Editor这个工具。>具体的题型可分为以下几类:

1.flag直接隐藏在010Editor中: 简单的图片隐写题目会把flag直接放在010Editor中,通常在结尾处。

例:

2. 在010Editor中通过查看并修改图片宽高为一致,得到flag:有些图片因为长度或宽度不够,导致flag没有显露出来,这时候就需要修改图片宽高,另存,重新打开图片,进而得到flag:

3.在 010Editor中隐藏某种特殊编码,转换成另一种常见的编码可得到flag:

 

(此题将隐藏在010Editor中的二进制编码转为我们熟悉的ASCII编码 即可得到flag)

4.通过在010Editor中查看图片信息,发现隐藏的RAR或ZIP压缩包,修改图片格式改为压缩包格式,进而解压得到有关flag的txt文件:(压缩包需要密码的就用ARCHPR或者Ziperello破解密码)

5.通过补全图片缺失的文件头,得到正常图片:有些题目给的图片文件后缀显示图片格式,但是打不开,放到010Editor中打开,补全对应文件头即可得到正常的图片:

例: 

6:套娃图片通过010Editor打开,另存另一张图片的16进制信息,获得隐藏的图片

例::

四.二维码题目:这一类题目,通常给一张二维码图片,微信扫一扫就出来了:

例:

<注意:有的二维码题目缺少定位信息的角,P上就可以>

 五.stegsolve中找flag,<这里意思也是找flag的过程中用到了Stegsolve工具>,具体题型可分为以下几类:

1.File Format(文件格式):在这里你会看见图片的具体信息,有时候有些图片隐写的flag会藏在这里,

例:

2.Data Extract(数据提取):这里涉及到图片隐写中的LSB隐写,LSB隐写就是修改图片RGB颜色分量的最低二进制位也就是最低有效位(LSB),可以得到隐藏的信息。

例:

在这里插入图片描述

3. Steregram Solve(立体试图),通过左右控制偏移得到flag:

例:

4.Frame Browser(帧浏览器 ):动图图片通过分帧获得flag:

例:

5.Stegsolve不同颜色通道打开图片找flag: Stegsolve打开图片,左右移动改变颜色通道,发现隐藏信息。

例:

六:综合应用:很多图片隐写题目都不只是单一的以上一种,所以要习惯多个小类型的综合使用 

几条思路供参考:

1.图片隐藏压缩包,需要密码,考虑伪加密,通过修改图片在010Editor中16进制信息破解,真加密在图片属性备注栏找密码或ARCHPR暴力破解密码。

2.图片上来先放binwalk中查看,有没有文件隐藏。

3.010Editor中找不到线索就放Stegsolve中查看信息,挨个排除。

4.图片看着没有展示全的,多半是要修改图片长宽。

七.最后总结一下用到的工具:

1.010Editor、Winhex:16进制编辑器。

2.binwalk:识别嵌入固件镜像内的文件和代码。

3.Stegsolve:支持使用不同方式解除图像隐写。

4.ARCHPR、Ziperello:解密压缩包。

5.base64、base58、URL解码、ASCII与特殊编码的互换等:解密编码。

6.记事本:txt文本文件查看。

 

(后言:内容方法还有术语多有不到位之处,努力学习中~~~~)

 

 

  • 57
    点赞
  • 363
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
图片隐写是指将一张图片隐藏在另外一张图片里面,而 PNG 文件是一种常见的图片格式,因此可以将一张图片隐藏在 PNG 文件中。以下是一个简单的例子: 1. 首先,将要隐藏的图片命名为 image.jpg,将要隐藏图片的 PNG 文件命名为 cover.png。 2. 将 image.jpg 转换为二进制文件,并将其插入 cover.png 中。 ```bash $ xxd -p -c 99999 image.jpg > image.hex $ cat image.hex | tr -d '\n' | xxd -r -p | dd of=cover.png bs=1 seek=100000 conv=notrunc ``` 这里的 `xxd -p -c 99999 image.jpg` 将 `image.jpg` 转换为十六进制,然后 `cat image.hex | tr -d '\n' | xxd -r -p` 将十六进制转回二进制,最后使用 `dd` 命令将二进制插入到 `cover.png` 的第 100000 个字节处。注意,这个位置可以根据具体情况进行调整。 3. 查看生成的 PNG 文件,可以看到图片已经被成功隐藏。 ```bash $ file cover.png cover.png: PNG image data, 800 x 600, 8-bit/color RGB, non-interlaced $ eog cover.png ``` 可以使用 `file` 命令检查文件类型,并使用图片查看器查看图片内容。 4. 提取隐藏的图片。 ```bash $ dd if=cover.png of=image2.jpg bs=1 skip=100000 ``` 这里的 `dd` 命令将 `cover.png` 中的隐藏图片提取到 `image2.jpg` 中。同样地,提取位置可以根据具体情况进行调整。 以上是一个简单的示例,实际情况可能更加复杂。在实际的 CTF 中,可能需要使用更加高级的隐写技巧来隐藏图片,例如使用 Least Significant Bit (LSB) 算法或者 F5 算法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值