CTF之misc-图片隐写

一·隐写术的介绍

隐写术是一门关于信息隐藏的技巧与科学,所谓信息隐藏指的是不让除预期 的接收者之外的任何人知晓信息的传递事件或者信息的内容。隐写术的英文 叫做Steganography,来源于特里特米乌斯的一本讲述密码学与隐写术的著 作Steganographia,该书书名源于希腊语,意为“隐秘书写”。

二.图片隐写

1.常用工具

HexWorkshop

Stegsolve

Binwalk

dd命令

2.查看十六进制,用HexWorkshop将图片打开,搜索flag等关键字或翻到最后,可能会出现flag

CTF之misc-图片隐写_第1张图片

3.右键属性,查看详细信息,可能会隐藏flag。

 4.将文件后缀名改为zip或rar,图片可能会变成压缩包。

正常的jpg图片是以FF D9结尾的,结尾 之后的东西不会被作为图片显示。图片查 看器会忽视后面的东西,不会影响正常显 示。 使用copy /b a.jpg+b.zip 3.jpg 会生成图 种,更改后缀名即可解压或查看源文件。 当然这只是针对添加的文件是压缩文件的 情况,添加的文件也可以是其他图片,比 如两张图片叠加。这时需要用binwalk 可 以获得更详细的信息。

CTF之misc-图片隐写_第2张图片

 总而言之:如果图片进制结尾不是FF D9,就有可能藏有文件。

5.LSB最低有效位

一种常见的方式是利用LSB来进行隐写,LSB 也就是最低有效位 (LeastSignificant Bit)。 原理就是图片中的像数一般是由三种颜色组成, 即三原色,由这三种原色可以组成其他各种颜 色,例如在PNG图片的储存中,每个颜色会 有8bit,LSB隐写就是修改了像数中的最低的 1bit,在人眼看来是看不出来区别的,也把信 息隐藏起来了。 譬如我们想把’A’隐藏进来的话,如下图,就 可以把A转成16进制的0x61再转成二进制的 01100001,再修改为红色通道的最低位为这 些二进制串

CTF之misc-图片隐写_第3张图片

 6.文件头修复

用hexworkshop打开,我们会发现他和普通的GIF图片不一 样,头部缺少了东西,在对比一些文档,会发现是少了 GIF8

CTF之misc-图片隐写_第4张图片

 我们手动修复一下,增加GIF8。

然后浏览图片后会发现,有个PASSWORD一闪而过,gif和别的图片最大的区别就是gif是动态图, 它是可以由多帧组成的可以顺序播放的,有的题就是把播放的时间弄得特别慢,几乎就不会动的, 所以我们可以用工具一帧一帧的观察图片。Stegsolve就带有这种功能。 Stegsolve——Analyse——Frame Brower就可以看到是有8帧的图片

7.PNG修改高度长度

用16进制编辑工具更改图片的高度,会只显示图片的一部分,下面的部分就被隐藏了,是 个藏东西的好办法 找表示宽度和高度的位置的话,可以先看看图片的属性,得到宽高值,转成16进制,搜索 16进制值就找到了

                            CTF之misc-图片隐写_第5张图片

用hexworkshop打开

CTF之misc-图片隐写_第6张图片CTF之misc-图片隐写_第7张图片

 因此将高度中的01改为02保存即可(如果不知道具体的宽高,可以修改成较大的宽高值)

 CTF之misc-图片隐写_第8张图片

 8.RGB值恢复

如果你拿到了一个如右下图一样像一堆坐标的 东西,不要慌。这只是RGB值而已,借助 python的PIL图片处理库即可轻松解决。

CTF之misc-图片隐写_第9张图片

 运行下图脚本,即可得到flag图片。当然在 这之前,记得先将RGB点个数因数分解一下, 从而确  定图片的长宽

 CTF之misc-图片隐写_第10张图片

你可能感兴趣的:(网络安全)