随随波逐流の旅店 vernus
← 返回首页

CTF--隐写术

  • 发表于 2024-06-25
  • 字数 2,010 · 约 5 分钟
  • 评论 —

CTF--隐写术

2024-06-25分类·ctf#ctf

CTF MISC简单介绍

MISC,就是杂项,简单来说就是利用工具解密,算是CTF中最有意思的一个分支了

MISC中比较多出现的题目呢

图片的,文件的相关隐写

伪加密

亦或是将文件隐藏再docx,pdf中的各个位置,

这些都是存在的(索引你平时看的文件中可能存在另一个文件(雾))

图片隐写

图片隐写呢可以根据图种分为几大类

JPG图片隐写,PNG图片隐写,GIF图片隐写以及其他类的图片隐写

但是都差不多

改文件

首先保证人手一个010editor或者winhex

打开文件发现文件头是

FF D8 FF E1

说明是一个JPG文件(jpeg也是JPG

图片隐写的三板斧呢,

第一,看文件头

判断是什么类型的图片,然后可以用010的模板中的模板脚本辅助查找

第二,看文件尾部

正常文件结尾是固定的,但是有时候尾部会缀点东西,因为图片已经结束了所以 不影响正常文件的显示

第三,文件中部

会有一些人把明文信息直接丢到文件中的,一般会有提示符(不然谁费事巴拉的去找

还有一种就是图片更改宽高

16进制表中,

【固定】前面8个字节是文件头部信息,只需要看前面查表

FF D8 FF E1 14 2E 45 78

【固定】再有4个字节是数据段长度

69 66 00 00

【固定】前面4个字节是文件头数据块的表示

4D 4D 00 2A

(可变)13个字节

前面4个表示宽

00 00 00 08

中间四个表示高

00 0C 01 00

后面五个依次是Bit depth、ColorType、Compression method、Filter method、Interlace method (了解都不需要)

伪加密

虽然不是图片隐写但还是说一下把反正都要用010

文件是加密的但是解压不行,说明可能是伪加密

压缩源文件数据区:
50 4B 03 04:这是头文件标记(0x04034b50)
14 00:解压文件所需 pkware 版本
00 00:全局方式位标记(有无加密)
08 00:压缩方式
5A 7E:最后修改文件时间
F7 46:最后修改文件日期
16 B5 80 14:CRC-32校验(1480B516)
19 00 00 00:压缩后尺寸(25)
17 00 00 00:未压缩尺寸(23)
07 00:文件名长度
00 00:扩展记录长度

压缩源文件目录区:
50 4B 01 02:目录中文件文件头标记(0x02014b50)
3F 00:压缩使用的 pkware 版本
14 00:解压文件所需 pkware 版本
00 00:全局方式位标记(有无加密,这个更改这里进行伪加密,改为09 00打开就会提示有密码了)
08 00:压缩方式
5A 7E:最后修改文件时间
F7 46:最后修改文件日期
16 B5 80 14:CRC-32校验(1480B516)
19 00 00 00:压缩后尺寸(25)
17 00 00 00:未压缩尺寸(23)
07 00:文件名长度
24 00:扩展字段长度
00 00:文件注释长度
00 00:磁盘开始号
00 00:内部文件属性
20 00 00 00:外部文件属性
00 00 00 00:局部头部偏移量

压缩源文件目录结束标志:
50 4B 05 06:目录结束标记
00 00:当前磁盘编号
00 00:目录区开始磁盘编号
01 00:本磁盘上纪录总数
01 00:目录区中纪录总数
59 00 00 00:目录区尺寸大小
3E 00 00 00:目录区对第一张磁盘的偏移量
00 00:ZIP 文件注释长度

LSB

LSB最低有效位隐写

LSB原理就是利用古人言识别不出来的差异信息来进行加密

举个例子

BUU-LSB

QR search能用就用,用不了就用网站

在线二维码扫描器

盲水印

通常是将图片进行离散余弦、小波或者傅里叶变换,得到图片的频谱信息, 再将水印的编码信息叠加到图片的频谱上, 然后再进行一次逆变换, 生成的图片就带有几乎无法检测、但又可以确切还原出来的盲水印了

python bwm.py decode file1 file2 outfile

盲水印有个傅里叶盲水印的

例题

攻防世界 misc 4-1

二维码

二维码是从右向左填充的数据,纠错码会在数据段之后

binwalk和foremost

binwalk查看图片信息

可以快速知道是不是由多个文件合并而成并将其分离

分析
binwalk filename
分离
binwalk -e filename

或者你直接用foremost分离文件

foremost filename -o output
foremost 文件名 -o 输出目录名

IDAT块隐写

图像数据块 IDAT(image data chunk):它存储实际的数据,在数据流中可包含多个连续顺序的图像数据块。IDAT 块只有当上一个块充满时,才会继续一个新的块。

(找了一圈没找到一个IDAT的,找了个图你们看看明白就好

图片隐写还有很多,像素点的,二维码的,gif的,这个其实就纯看脑洞

docx和ppt隐写

docx说白了也是一种zip形式,我们可以改成zip然后再进行寻找就能找到

字体的隐藏

书签

解压以后图片的设置

音频隐写

音频隐写主要使用的是Audacity

看波形,看频率,经常在这里放摩斯密码或者是声音中参杂着

这个题呢就是典型的波形,放大到最大看前面你的就找到了