密码+杂项题简单记录

只会web,得分太少,还是搞点密码和杂项来提高一下

1.一般加密

1
2
3
直接用kali的

ciphey -t "xxx"

2.SSTV图像声音/Audacity波形声音

1
2
3
4
5
用win10

MMSSTV工具解析声音,最好用虚拟声卡这样可以屏蔽一些杂音【把声音给MMSSTV听】

Audacity解析声音波形得到波形图像从而得到flag

3.加密压缩包

*1)win10

win10工具爆破压缩包密码

2)kali

kali john爆破压缩包

1
zip2john 压缩包的名字.zip >> passwdhash.txt

4.图片隐写

1)win10

利用Stegsolve解析图片隐写内容

*2)kali

zsteg

1
zsteg 图片

5.零宽字符隐写

http://330k.github.io/misc_tools/unicode_steganography.html

我们开始看这个内容是没有什么问题的,但是底下的

第7行,第204列

说明里面有其他我们无法看到的字符存在

image-20220927160630959

我们可以利用vim读取一下这个文本文件,就会发现里面多了很多奇奇怪怪的字符

image-20220927160526722

这些就是零宽字符

那么我们如何从中读取信息呢

这里就需要下面这个网站的,对文本的零宽字符加密零宽字符解密功能

1
http://330k.github.io/misc_tools/unicode_steganography.html

先选好出现的字符类型

image-20220927161233239

然后

image-20220927161257809

得到隐藏内容

1
86MygAZ2uJi2oCxctsd28LBNRXHPLykF5LBz8f1xEikWNVpKfpce2CMHvhSJUdk7CHLrEVhGRVQvMwT8r7JUgVWGbnzxb

ciphey 得到flag

image-20220927161352763

6.隐藏秘密(flag)到图片、音乐

win10

Silenteye

image-20220927162235740

把图片或者声音拖入其中

image-20220927162311232

然后执行Decode

image-20220927162351939

得到加密信息

ciphey 得到flag

image-20220927162441904

7.小游戏

win10

CE修改器,懂得都懂

8.Java类的

利用jd-gui对java反汇编,看看有没有信息

9.二维码

1)缺少定位点

image-20220927163933448

利用ps把两者拼接起来就可以了

10.分离图片中的隐藏文件

原文链接

1)图片分析:

如图为CTF题目中一个隐藏文件的图片

首先对图片进行分析,这里介绍一个工具binwalk(kali中是自带的,也可以下载到windows中使用)。

使用方法:binwalk + 文件路径/文件名

1
binwalk 1.jpg

执行命令后,binwalk就会自动分析这个jpg文件:

image-20220927165710470

从分析的结果看,这个jpg文件隐藏着一个zip文件,从48221块偏移开始就是zip文件。

2、如何分离:

在得到隐藏信息后,改如何把zip文件分离出,下面介绍几种方法:

2.1、binwalk 分离:

还是使用binwalk工具,使用dd命令分离出隐藏文件:

1
dd if=1.jpg of=1.zip skip=48221 bs=1

解释:if 指定输入文件,of 指定输出文件,skip 指定从输入文件开头跳过48221个块后开始复制,

bs设置每次读写块的大小为1字节

执行后会得到一个1.zip文件。

image-20220927165740304

2.2、foremost 工具分离:

foremost是一个基于文件文件头和尾部信息以及文件的内建数据结构恢复文件的命令行工具,win可以下载使用,Linux可以通过下面命令安装使用:

1
apt-get install foremost

Linux下分离文件的命令为:

1
foremost 1.jpg

执行命令后,foremost会生成output目录存放分离出的文件。

Win下是把文件直接拖到 foremost.exe上,也会生成output目录存放分离出的文件。

image-20220927165802749

2.3、hex编辑器分离:

hex编辑器有很多,win下有用得较多的winhex、UltraEdit等,linux下有hexeditor等。这里我们以winhex为例来手动分离。

一个完整的 jpg 文件由 FF D8 开头,FF D9结尾,图片查看器会忽略 FF D9 以后的内容,因此可以在 jpg 文件中加入其他文件。

经过上面的分析, 知道图片中隐藏了zip文件,zip文件的开头16进制为504B0304,先搜索16进制文本 FFD9,然后后面跟着504B0304,于是就可以从 50 开始,复制到最后(因为这里只有一个zip,所以复制到最后),另存为新文件,就得到了隐藏的压缩包。

image-20220927165829838

image-20220927165845340

image-20220927165911140

2.4、改后缀名:

分析知道隐藏文件是zip后,有一个简单粗暴的方法是直接把图片的后缀改为.zip,然后解压即可(这种方法虽然简单快速,但如果隐写了多个文件时可能会失败)。

11.多图片拼图

原文链接

Misc 自动拼图
需要使用python遗传算法脚本gaps和拼图脚本montage

开始拼图
以ctf中的一道训练题puzzle为例

如果图片为碎片状,根据总数确定拼块长宽数量,并用montage进行第一次拼接

image-20220927171241532

1
2
#如左下角所示,总数为256块,即图片以16×16拆分而成的(要在拼块目录下运行命令),
#*.png为拼块格式,16×16为长宽数量,flag.png为合成后的图片名
1
montage *.png -tile 16x16 -geometry +0+0 flag.png   

运行后在目录下可找到如下图片

image-20220927171709538

运行后在目录下可找到如下图片

接着最关键的一点,调整图片长宽比为1:1,可以用PS->图像大小,以较大数值为边长,扩充为正方形(方便后续size的计算),否则后期gaps无法获得最佳效果

image-20220927171907186

image-20220927171924733

接下来就是调用gaps脚本实现自动拼图排序(重点)

image-20220927171940838

1
2
3
#此处的size为正方形小拼块的边长像素,由于刚刚经过拉伸,拼块从160×100变成了160×160
#注意是小的正方形像素,比如拼接完成的为360px,而一列有12张图,那size为12px
gaps --image=flag.png --size=160 --save

image-20220927171957840

1
2
3
4
5
6
7
8
补充:gaps各参数的作用

image 指向拼图的路径
–size 拼图块的像素尺寸
–generations 遗传算法的代的数量
–population 个体数量
verbose 每一代训练结束后展示最佳结果
save 将拼图还原为图像
1
2
总结
最有挑战性的地方莫过于安装gaps和对gaps参数的把握,特别是sized的计算,需要先使图片的拼块恰好为像素最大的一条边的正方形,size=该边长像素。另外,pip和python库要提前安装完毕

12.zip伪加密【360压缩无视伪加密】

1)zip 文件

1
2
3
一个 ZIP 文件由三个部分组成:

压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志

2)伪加密原理

1
2
3
4
5
zip伪加密是在文件头的加密标志位做修改,进而再打开文件时识被别为加密压缩包。

把 压缩源文件目录区 的 全局方式位标记 的 `01 00` 或 `09 00` 改为 `00 00` 就可以去除密码

把 压缩源文件目录区 的 全局方式位标记 的 `00 00` 改为 `01 00` 或 `09 00` 就可以添加密码 提示

3)压缩源文件数据区

1
2
3
4
5
6
7
8
9
10
11
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:扩展记录长度

4)压缩源文件目录区:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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:局部头部偏移量
6B65792E7478740A00200000000000010018006558F04A1CC5D001BDEBDD3B1CC5D001BDEBDD3B1CC5D001

5)压缩源文件目录结束标志:

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

6)查找压缩文件目录区

1
2
3
4
5
6
7
一般面对一些小的文件时 很容易就找到  压缩文件目录区 的文件头

但是当我们面对一些较大的文件 找 压缩文件目录区的 文件头 50 4B 01 02 就有点麻烦了

我们可以利用 winhex 中的查找 字符查找 快速找到 压缩文件目录区 的文件头

然后把 后面的 全方位标记区 的 01 00 或 09 00 改为 00 00 保存 后就可以打开压缩包了