CTF MISC简单介绍

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

MISC中比较多出现的题目呢

图片的,文件的相关隐写

伪加密

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

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

图片隐写

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

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

但是都差不多

改文件

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


打开文件发现文件头是

1
FF D8 FF E1

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

图片隐写的三板斧呢,

第一,看文件头

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

第二,看文件尾部

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

第三,文件中部

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

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

16进制表中,

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

1
FF D8 FF E1 14 2E 45 78

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

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

1
4D 4D 00 2A

(可变)13个字节

前面4个表示宽

1
00 00 00 08

中间四个表示高
1
00 0C 01 00

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

伪加密

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
压缩源文件数据区:
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能用就用,用不了就用网站

在线二维码扫描器

盲水印

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

1
python bwm.py decode file1 file2 outfile

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

例题

攻防世界 misc 4-1

二维码

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

binwalk和foremost

binwalk查看图片信息

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

1
2
3
4
分析
binwalk filename
分离
binwalk -e filename

或者你直接用foremost分离文件

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

IDAT块隐写

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

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

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

docx和ppt隐写

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

字体的隐藏

书签

解压以后图片的设置

音频隐写

音频隐写主要使用的是Audacity

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

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