• 前言

啦啦啦,不知道上回写的你们都了解了吗。。。(⊙_⊙)?上回文章链接

这回咱们来讲一讲CTF入门的另一个需求,就是隐写术~~        (说的不对大佬勿喷)_(:з)∠)_

隐写术,顾名思义就是讲需要传达的信心隐藏在各种载体上(数据流,压缩包,图片,音频等)也是一种手段。现代的数字水印技术就是从这方面发展而来的,数字水印技术在现在社会中越来越种重视版权这一方向的加持下发展的越来越好,下面来举一个例子来说明数字水印技术的重要性。

  • 例子 一家电影公司A  拍摄了一部非常好的电影 ,电影的原片分为三个交给了 电影放映人员B 导演C 制片人D ,交给他们三个的电影分别使用了三个不同的数字水印技术对应B C D。不久后盗版电影在市面上流传,这时候怎么知道是哪一方泄露了原片?     电影公司A就可以在市面上下载后的电影中分析数字水印,得到的结果是B对应的数字水印,那么电影公司就可以和电影放映人员B去打版权官司了。。。(大概就是这个意思,(。・∀・)ノ嗷呜呜呜~)
  • 下面开始进入正题咱们来讲一讲隐写术

 

  • 压缩包类隐写

这个压缩包是我们日常使用当中经常接触的,常见的格式: .rar  .zip .7z(貌似常见就这仨233333)

压缩包是可以加密的我们都知道,关于怎么解密有几种方法:

  • 爆力破解,俗称爆破,使用对应的暴力破解软件,通过软件的解密算法实现,有时候CTF会出这类的题,根据加密的复杂程度,破解出来的所需要的时间是不一样的。
  • 伪加密:通过修改压缩包的16进制文件中的数据,使压缩包显示有密码(其实是没有加密的,这时候爆破一万年也出不来啊_(:з)∠)_ )

1.可以使用使用ZipCenOp.jar(需要java环境),在cmd中使用(进入目标目录下)

命令:java -jar ZipCenOp.jar r xxx.zip     

2.使用winRAR的修复(可能不好使)

3.一格zip文件有三个部分组成:压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志 

这是三个头标记,主要看第二个
压缩源文件数据区:50 4B 03 04:这是头文件标记
压缩源文件目录区:
50 4B 01 02:目录中文件文件头标记
3F 00:压缩使用的 pkware 版本
14 00:解压文件所需 pkware 版本
00 00:全局方式位标记(有无加密,这个更改这里进行伪加密,改为09 00打开就会提示有密码了)
  • 明文攻击 (软件Advanced Zip Password Recovery)所谓明文攻击就是已经通过其他手段知道zip加密文件中的某些内容,比如在某些网站上发现它的readme.txt文件,或者其他文件,这时就可以尝试破解了
  • 图片隐写

将一段信息附带在图片的16进制文件后方但是仍然显示为图片。

  • 可在cmd下使用命令将txt文件隐藏在png文件下:copy x.png/b + x.txt/a xx.png

解密方法:1.拖到HXD等16进制查看器下,根据文件头等格式手工分离                                   2.binwalk 或者foremost命令:binwalk 解密文件 -e或foremost 解密文件

  • LSB最低有效位隐写这类隐写,一般都藏在0,1,2这些低位里面,使用stegsolve查看色道 有的色道会隐藏着信息,例如:(实验吧SBSBSB那个隐写题)
  • CTF比赛中可利用16进制编辑工具更改图片的高度,使图片只显示一部分,下面的部分被隐藏,嗯,这是个藏东西的好办法

当以上方法均不可以得到FLAG,且图片长宽比例诡异时,可以尝试改图片大小,下面介绍找图片宽度和高度的标志位的方法:

A)对于png文件,其第二行第六列是高度位,改这一位即可;                             B)对于其他格式图片,可以先看看图片的属性,得到宽高值,转成16进制数,搜索该16进制值就能找到标志位了;