2021.8.5CTF刷题
一:
题目:大白
内容:看不到图? 是不是屏幕太小了 注意:得到的 flag 请包上 flag{} 提交
思路:
有题目和照片发现图片可能被修改了,我们需要将下面部分修复
将图片放入HXD中修改图片的高度
即可得到答案:flag{He1l0_d4_ba1}
拓展:
常见的文件头识别和修复
文件头是位于文件开头的一段承担一定任务的数据
以下是常见的文件头:
相应的还有文件结尾
zip文件的结尾以一串504B0506开始
rar文件以C43D7B00400700结尾
JPG文件结尾为FFD9
PNG文件 结尾为000049454E44AE426082
Gif文件结尾为3B
其中PNG文件头还包含IHDR信息
一个zip文件头中的一些信息
50 4B 03 04:这是头文件标记
0A 00:解压文件所需 pkware 版本
00 00:全局方式位标记(有无加密)
00 00:压缩方式
6D A9:最后修改文件时间
FA 50:最后修改文件日期
9A EB F4 D1:CRC-32校验
04 00 00 00:压缩后尺寸
04 00 00 00:未压缩尺寸
08 00:文件名长度
00 00:扩展记录长度
66 6C 61 67 2E 74 78 74 66 6C 61 67 压缩源文件目录区
50 4B 01 02:目录中文件文件头标记
3F 00:压缩使用的 pkware 版本
0A 00:解压文件所需 pkware 版本
00 00:全局方式位标记(有无加密,这个更改这里进行伪加密,改为09 00打开就会提示有密码了)
00 00:压缩方式
rar文件格式
bugku:一个普通的压缩包
等等
相关原文链接:常见的文件头识别和修复
二:
题目:伪加密
思路:
下载安装包后,暴力破解不出来,因为是伪加密,直接用hex打开修改里里面得值,保存得到答案
答案:flag{Adm1N-B2G-kU-SZIP}
拓展:
zip格式文件伪加密
简介:
zip文件是一种压缩文件,可进行加密,也可不加密。而伪加密是在未加密的zip文件基础上修改了它的压缩源文件目录区里的全局方式位标记的比特值,
使得压缩软件打开它的时候识别为加密文件,提示输入密码, 而在这个时候,不管你用什么软件对其进行密码破解,都无法打开它!这就是它存在的意义!
文件组成:
- 压缩源文件数据区
- 压缩源文件目录区
- 压缩源文件目录结束标志
样本示例
第一个荧光标记条中:(压缩源文件数据区初始位置)
504B0304(文件头标记,4bytes)
1400(解压文件所需pkware版本,2bytes)
0000(全局方式位标记,2bytes)未加密标志
第二个荧光标记条中:(压缩源文件目录区初始位置)
504B0102(目录中文件文件头标记,4bytes)
1F00(压缩使用的pkware版本,2bytes)
1400(解压文件所需pkware版本,2bytes)
0000(全局方式位标记,2bytes)压缩软件识别未加密标志
伪加密
压缩源文件数据区的全局方式位标记为0000(未加密)
压缩源文件目录区的全局方式位标记为0900(软件识别加密)
如何做到?
就是将未加密文件的压缩眼文件目录区的全局方式位标记改为0900
(真)加密
压缩源文件数据区的全局方式位标记为0900(已加密)
压缩源文件目录区的全局方式位标记为0900(软件识别加密)
因此已加密
应用:
文档文件隐写
全局方式为标记还有哪些值?
四个数字中只有第二个数字对其有影响,其它的不管为何值,都不影响它的加密属性!
第二个数字为奇数时 –>加密
第二个数字为偶数时 –>未加密
三:
题目:robomunication
下载文件发现是一个音频,用Audacity听,发现是摩斯密码,哔哔哔哔 哔 哔波哔哔。。。
整理后得到:.... . .-.. .-.. --- .-- .... .- - .. ... - .... . -.- . -.-- .. - .. ... -... --- --- .--. -... . . .--.
翻译得
密码是:HELLOWHATISTHEKEYITISBOOPBEEP
最终解得flag为BOOPBEEP
四:
题目:Cipher
内容:还能提示什么呢?公平的玩吧(密钥自己找) Dncnoqqfliqrpgeklwmppu
题目的突破口“公平的玩吧”,公平-“fair”,这里涉及到一种加密方式名为“普莱费尔密码”(playfair)
在线解密网站 http://rumkin.com/tools/cipher/playfair.php
注意网站这里的解密和加密的切换
题目重点就是公平的玩,即告诉我们什么密码和密钥
密钥是:“公平的玩” playfair
输进去得到答案
答案:flag{itisnotaproblemhavefun}
拓展:
Playfair密码
Playfair密码(英文:Playfair cipher 或 Playfair square)是一种替换密码,1854年由查尔斯·惠斯通(Charles Wheatstone)的英国人发明。
编写分三步:1.编制密码表 2.整理明文 3.编写密文 构成部分:
1.密钥
2.明文
3.密文
4.注明的某个字母代替的另一个字母
百度百科:它依据一个5*5的正方形组成的密码表来编写,密码表里排列有25个字母。如果一种语言字母超过25个,可以去掉使用频率最少的一个。
如,法语一般去掉w或k,德语则是把i和j合起来当成一个字母看待。英语中z使用最少,可以去掉它。
搜狗百科:由于是5×5的矩阵,而英文字母共26个,通常有两种处理方法:①若密钥和明文中均不含字母Q则填入矩阵时不包括Q
②若密钥或明文中均含有字母Q则填入矩阵时字母I和J捆绑在一起看做一个字母,占一个格子。
综上:如果秘钥有I或者J,就把Q或者Z去掉,保持25个。
playfair加密算法根据下列规则一次对明文的两个字母进行加密,这两个字母构成一对。其加密规则如下:
(1)一对明文字母如果是重复的。则在这对明文字母种间插入一个填充字符。如X。因此,单词session将被分割成:se、sx、si、on。
(2)如果分割后的明文字母对在矩阵的同一行中都出现,则分别用矩阵中其右侧的字母代替,行的最后一个字母由行的第一个字母代替。例如,on被加密成qo,而st被加tn。
(3)如果分割后的明文字母对在矩阵的一列中都出现,则分别用矩阵中其下方的字母代替,列的最后一个字母由列的第一个字母代替。例如,en被加密成nu,而aw被加密成ba。
(4)如果分割后的明文字母对既不在矩阵的同一列中都出现也不在矩阵的同一行中都出现,密文是这两个字母所在的长方形的另两个顶点。例如,se被加密成nk,而cu被加密成ix(或jx)。
(5)如果明文有奇数个字母,末尾加一个无效字母。
例如:明文为we are discovered save yourself,分组成为we ar ed is co ve re ds av ey ou rs el fz;
用上述矩阵加密后的密文为:UG RM KC SX HM UF MK BT OX GC MV AT LU KV
例子:
使用Playfair密码的加密明文good,密钥关键词是monarchy,计算加密后的密文。
M |
O |
N |
A |
R |
C |
H |
Y |
B |
D |
E |
F |
G |
I/J |
K |
L |
P |
Q |
S |
T |
U |
V |
W |
X |
Z |
将明文按照两个字母分组:
go od
密文是:
FN RH
五:
题目:
小明的保险箱
内容:
小明有一个保险箱,里面珍藏了小明的日记本,他记录了什么秘密呢?。。。告诉你,其实保险箱的密码四位纯数字密码。
思路:
分离图片,暴力破解
答案:flag{75a3d68bf071ee188c418ea6cf0bb043}