编码/加密
Base家族
1 | #flag |
base64可以换表编码
1 | 表:sQ+3ja02RchXLUFmNSZoYPlr8e/HVqxwfWtd7pnTADK15Evi9kGOMgbuIzyB64CJ |
MD5
1 | #flag{md5} |
Byte类型
emoji-AES
在线网站:https://aghorler.github.io/emoji-aes/
1 | 密文:🙃💵🌿🎤🚪🌏🐎🥋🚫😆✅🌊🚰✖😇😊🐍😀🔪😇🚰🎈🏎😂❓😁🍎👑⏩🚫❓🎅🎃😡⌨☀🍌😁✖😂🏎🍌🎃🗒 |
emoji解码
在线网站:http://www.atoolbox.net/Tool.php?Id=937
1 | 🐯👏👋🐾👚👪👇👱👞👚🐦👡👙👚👏👍🐯👏🐽👐👜🐦👇👱👜👙👤👡👙🐬👥🐻🐯👏👋👈👚👪👇👘👰👛👮👡👙👎🐭🐯 |
二维码
解码在线网站:https://cli.im/deqr/other
分析修复在线网站:https://merri.cx/qrazybox/
频次分析
字频分析:https://lzltool.cn/Tools/LetterFrequency
摩斯电码
可能只有.-
或0 1
组成,也可能是其他只有两种字符的情况,通常会使用空格、换行或/
进行分割
维吉尼亚密码
- 给出密钥 -> CyberChef
- 没有密钥 -> 根据对照表手搓密钥
在线网站:https://ctf.bugku.com/tool/vigenere
维吉尼亚flag爆破脚本:
1 | #By C3ngH |
希尔密码
已知密文和密钥,并且密钥(key)是一个网址,如http://www.verymuch.net
已知密文和密钥,并且密钥是四个数字
1 | 密文:ymyvzjtxswwktetpyvpfmvcdgywktetpyvpfuedfnzdjsiujvpwktetpyvnzdjpfkjssvacdgywktetpyvnzdjqtincduedfpfkjssne |
在线网站:https://www.metools.info/code/hillcipher243.html
Rabbit加密
密文形式类似base64,但可能有+
号
在线网站:https://www.sojson.com/encrypt_rabbit.html
幂数加密/云影密码
密文只由0 1 2 4 8
组成
脚本:
1 | with open(r'C:/Users/67300/Download/1.txt','r') as f: #修改路径 |
曼彻斯特编码 & 差分曼彻斯特编码
使用曼彻斯特编码转换工具进行转换
社会主义核心价值观编码
在线网站:http://www.hiencode.com/cvencode.html
音符解密
1 | ♭♯♪‖¶♬♭♭♪♭‖‖♭♭♬‖♫♪‖♩♬‖♬♬♭♭♫‖♩♫‖♬♪♭♭♭‖¶∮‖‖‖‖♩♬‖♬♪‖♩♫♭♭♭♭♭§‖♩♩♭♭♫♭♭♭‖♬♭‖¶§♭♭♯‖♫∮‖♬¶‖¶∮‖♬♫‖♫♬‖♫♫§= |
注意:加密的密文一定是以=结尾的,如果没有需要自己加
在线网站:https://www.qqxiuzi.cn/bianma/wenbenjiami.php?s=yinyue
敲击码
基于5×5方格波利比奥斯方阵实现,不同点是是用K字母被整合到C中,因此密文的特征为1-5的两位一组的数字,编码的范围是A-Z字母字符集,字母不区分大小写。
在线网站:http://www.hiencode.com/tapcode.html
盲文
在线网站:https://www.qqxiuzi.cn/bianma/wenbenjiami.php?s=mangwen
Polybius密码
在线网站:http://www.atoolbox.net/Tool.php?Id=913
AES加密
-
不需要密钥
在线网站:http://tools.bugscaner.com/cryptoaes/
CyberChef中,IV设置为
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
-
需要密钥 密钥不足16字节需要补齐
在线网站:https://www.sojson.com/encrypt_aes.html
工具:CaptfEncoder
埃特巴什码(Atbash)
1 | 密文:(+w)v&LdG_FhgKhdFfhgahJfKcgcKdc_eeIJ_gFN |
在线网站:https://www.metools.info/code/atbash209.html
DNA编码
1 | 密文:AATTCAACAACATGCTGC |
脚本:https://github.com/omemishra/DNA-Genetic-Python-Scripts-CTF
仿射密码
有两个key,key-a为必须是(1,3,5,7,9,11,15,17,19,21,23,25)中的一个,key-b是0~25的数字
在线网站:http://www.hiencode.com/affine.html
Brainfuck
1 | 密文:+++++ +++++ [->++ +++++ +++<] >++.+ +++++ .<+++ [->-- -<]>- -.+++ +++.< |
在线网站:https://tool.bugku.com/brainfuck/
Ook!
在线网站:https://tool.bugku.com/brainfuck/
与佛论禅 / 与熊论道 / 兽语加密
通常以佛曰
和熊曰
开头,中文乱码
在线网站:http://hi.pcmoe.net/
在线网站:https://ctf.bugku.com/tool/todousharp
空白格 / 无字天书:
在线网站:https://www.w3cschool.cn/tryrun/runcode?lang=whitespace
在线网站:https://vii5ard.github.io/whitespace/
Serpent解密
在线网站:https://www.ssleye.com/ssltool/ser_cipher.html
零宽隐写
在线网站:http://330k.github.io/misc_tools/unicode_steganography.html
Gronsfeld密码
1 | # 解密脚本 |
UUencode编码
有点像base85
1 | =8S4U,3DR8SDY,C`S-F5F-C(S,S<R-C`Q9F8S87T` |
在线网站:https://www.qqxiuzi.cn/bianma/uuencode.php
AAencode编码
1 | 密文: |
在线网站:http://www.hiencode.com/aaencode.html
XXencode编码
和UUencode有点像
在线网站:https://try8.cn/tool/code/xxencode
snow隐写
在行尾附加空格和制表符来隐藏 ASCII 文本中的消息
官网:https://www.darkside.com.au/snow/
参数 | 作用 |
---|---|
-C |
如果隐藏,则压缩数据,或者如果提取,则会解压缩。 |
-Q |
静音模式。如果未设置,则程序报告统计信息,例如压缩百分比和可用存储空间的数量。 |
-S |
报告文本文件中隐藏消息的近似空间量。考虑线长度,但忽略其他选项。 |
-p password |
如果设置为此,则在隐藏期间将使用此密码加密数据,或在提取期间解密。 |
-l line-length |
在附加空格时,Snow将始终产生比此值短的线条。默认情况下,它设置为80。 |
-f message-file |
此文件的内容将隐藏在输入文本文件中。 |
-m message-string |
此字符串的内容将被隐藏在输入文本文件中。请注意,除非在字符串中包含一个换行符,否则在提取邮件时,否则不会打印换行符。 |
-
加密消息
1
SNOW.EXE -C -m "qsdz yyds" -p "duzou" infile outfile
-
提取消息
1
SNOW.EXE -C -p "duzou" infile outfile
需要注意的是,infile
必须在 outfile
前,如果不填 infile
选项,则默认从标准输入中获得;如果不填 outfile
选项,则默认输出到标准输出中。
中文电报
类似于四位数一组的编码
1 | 5337 5337 2448 2448 0001 2448 0001 2161 1721 1869 6671 0008 3296 4430 0001 3945 0260 3945 1869 4574 5337 0344 2448 0037 5337 5337 0260 0668 5337 6671 0008 3296 1869 6671 0008 3296 1869 2161 1721 |
在线网站:https://www.qqxiuzi.cn/bianma/dianbao.php
Quote-Printable编码
1 | 密文:=E6=8A=80=E6=9C=AF=E6=9C=89=E6=B8=A9=E5=BA=A6 |
在线网站:https://try8.cn/tool/code/qp
中文ASCII码
1 | 27880 30693 25915 21892 38450 23454 39564 23460 21457 36865 112 108 98 99 116 102 33719 21462 21069 27573 102 108 97 103 20851 27880 79 110 101 45 70 111 120 23433 20840 22242 38431 22238 22797 112 108 98 99 116 102 33719 21462 21518 27573 102 108 97 103 |
加上 &
#
;
1 | 注知攻善防实验室发送plbctf获取前段flag关注One-Fox安全团队回复plbctf获取后段flag |
在线网站:https://www.xuhuhu.com/beautify/ascii/
培根密码
由 a、b 或者 A、B 或者 0、1 组成的密文,密文中只有两种字符,可以直接使用 随波逐流
解密
CyberChef 的培根密码解密可能会有点问题,这里建议用随波逐流解密
锟斤拷
成因是 Unicode 的替换字符(Replacement Character,�)于 UTF-8 编码下的结果 EF BF BD 重复,在 GBK 编码中被解释为汉字 “锟斤拷”(EF BF BD EF BF BD)
1 | import os |
键盘坐标密码
1 | 1 2 3 4 5 6 7 8 9 0 |
11 21 31 18 27 33 34
-> QAZIJCV
福尔摩斯 跳舞的小人
手机九宫格键盘密码
82 73 42 31 22 31 33 41 32
U R H D B D F G E
利用编程代码画图
- LOGO编程语言【例题-[RCTF2019]draw 】
在线编译器:https://www.calormen.com/jslogo/ - CFRS编程语言【例题-2024宁波市赛初赛 Misc2】
在线画图网站:https://susam.net/cfrs.html
spammimic编码
HGAME 2024有一题,可识读英文可以转成中文乱码,ROT8000编码
强网拟态2024 OSINT也是
malbolge
类似这样的
1 | ('&%:9]!~}|z2Vxwv-,POqponl$Hjig%eB@@>}=<M:9wv6WsU2T|nm-,jcL(I&%$#" |
类似题:2024 强网拟态 PvZ
在线网站:Malbolge - interpreter online (doleczek.pl)
解码工具
Ciphey
1 | ciphey -t "aGVsbG8gbXkgbmFtZSBpcyBiZWU=" #WSL |
CyberChef
Basecrack
1 | python3 basecrack.py -m |
随波逐流
文件头
1 | .zip的文件头:50 4B 03 04 14 00 08 00 |
图片通用隐写
属性-详细信息
Hint或Key可能藏在属性里
010Editor检查文件末尾
flag可能藏在文件末尾
010Editor检查文件头
可能存在文件头和文件后缀名不一致导致打不开的情况
binwalk & foremost
binwalk查看,foremost提取
盲水印隐写
项目地址:https://github.com/chishaxie/BlindWaterMark
1 | bwm.py 程序文件python2版本 |
1 | python bwm.py encode hui.png wm.png hui_with_wm.png #加密 |
1 | python bwm.py decode hui.png hui_with_wm.png wm_from_hui.png #解密 |
频域盲水印
Puzzle Solver一把梭
图片分离 / 拼接
1 | #WSL |
OurSecret隐写
拖进OurSecret输入密钥进行解密
拼图
碎图片合成一张图片
1 | #在Windows中使用imagemagick处理 |
1 | #在kali中处理 |
然后把上面合成好的图片使用 Puzzle-Merak 工具进行智能拼图
输入 generation、population、size 并用分号分开即可开始自动拼图
也可以使用gaps智能拼图(在kali和wsl里使用都可以)
1 | gaps --image=out.png --generation=30 --population=144 --size=30 --save |
1 | gaps --image=flag.jpg --generations=50 --population=180 --size=125 --verbose |
近邻法缩放图片
在PS中打开图片,然后在更改图像大小中,将宽高调成指定像素并将重新采样选项选为邻近(硬边缘)
pixeljihad
pixeljihad隐写 有密码
在线网站:https://sekao.net/pixeljihad/
隐写文本藏在原图片和隐写文件中间
在010 Editor中搜索IEND,查看后面有没有额外内容
提取图片中等距的像素点得到隐写的图片
在PowerShell中运行Get_Pixels.py
1 | #Get_Pixels.py |
1 | py main.py -f arcaea.png -p 0x0+3828x2148 -n 12x12 |
silenteye隐写
特征:放大图像后会有行列不对齐的小灰块
直接用 silenteye 打开输入密钥decode即可,默认密钥是 silenteye
图片报错改宽高后图片无变化
再 foremost 一下
DeEgger Embedder隐写
使用 DeEgger Embedder 工具 extract files
EXIF隐写
直接在 WSL 中输入以下命令查看即可,也可以直接使用 破空 flag 查找工具 进行查找
1 | exiftool 1.jpg |
PNG图片隐写
CRC错误
修改宽高,17~20是宽,21~24是高
可用Puzzle Solver一把梭修改
LSB隐写
1 | # wsl |
信息藏在图片中有时候会看不出来,所以还是要用stegsolve.jar过一遍
cloacked-pixel
lsb隐写的可能是加密后的数据,i春秋最喜欢的cloacked-pixel
拉到kali/WSL里用cloacked-pixel命令解密出数据
1 | python2 cloacked-pixel-master/lsb.py extract 0.png out.data f78dcd383f1b574b |
0.png是隐写后的图片;out.data是隐写内容保存的位置;f78dcd383f1b574b是密钥
IDAT块隐写
拉到kali里用pngcheck -v 0.png检查IDAT
解压zlib获得原始数据
然后用010提取数据扔进zlib脚本解压获得原始数据
将异常的IDAT数据块斩头去尾之后使用脚本解压,在python2代码如下:
1 | import zlib |
加上文件头爆破宽高得到新的图片
一般出问题的 IDAT Chunk 大小都是比正常的小的,很可能在图片末尾
如果不确定是哪一个有问题,可以尝试都提取出来,一个一个分析
可以使用 tweakpng 辅助分析,但是一般用010的模板提取分析就够了
apngdis_gui
一张png图片还可能是apng,直接用apngdis_gui跑一下,可以分出两张相似的png
CVE-2023-28303 截图工具漏洞
可以使用Github上大佬写好的工具一把梭,前提是需要知道原图的分辨率
stegpy隐写
stegpy 开源地址 下载好后直接用WSL输入以下命令并输入密码解密即可
也可以直接用 pip 安装: pip3 install stegpy
1 | stegpy 1.png -p |
JPG图片隐写
outguess隐写
项目地址:https://github.com/crorvick/outguess
1 | #WSL安装 |
加密
1 | outguess -k “my secret key” -d hidden.txt demo.jpg out.jpg |
解密
1 | outguess -k “my secret key” -r out.jpg hidden.txt |
F5-steganography-master(F5隐写)
项目地址:https://github.com/matthewgao/F5-steganography
1 | #有密码的情况 |
JPHS隐写
有可能会有密码
导出步骤 Select File --> seek --> demo.txt --> Save the file
steghide隐写
1 | #密码已知 |
在WSL或者kali里用Stegseek跑(字典在wordlist里)
1 | #密码未知 |
1 | #或者在WSL或者kali里用Stegseek跑(字典在wordlist里) |
BMP图片隐写
宽高爆破
删除文件头,并保存为文件名.data,然后用GIMP打开修改宽高(比较方便)
或者直接用bmp爆破脚本跑 python script.py -f filename.bmp
1 | #用这个脚本要注意对图片一个个使用 |
1 | import os |
wbStego4open隐写
用wbStego4open直接decode
GIF隐写
分帧提取 在线网站:https://tool.lu/gifsplitter/
1 | # 在Windows或者WSL中执行以下命令进行分离 |
压缩包
Tips:压缩包的密码可以是中英文字符和符号
没有思路时可以直接纯数字/字母暴力爆破一下
zip文件结构
三部分:压缩文件源数据区 + 压缩源文件目录区 + 压缩源文件目录结束标志
文件源数据区
HEX 数据 | 描述 | 010Editor 模板数据 |
---|---|---|
50 4B 03 04 | zip 文件头标记,看文本的话就是 PK 开头 | char frSignature[4] |
0A 00 | 解压文件所需 pkware 版本 | ushort frVersion |
00 00 | 全局方式位标记(有无加密),头文件标记后 2bytes | ushort frFlags |
00 00 | 压缩方式 | enum COMPTYPE frCompression |
E8 A6 | 最后修改文件时间 | DOSTIME frFileTime |
32 53 | 最后修改文件日期 | DOSDATE frFileDate |
0C 7E 7F D8 | CRC-32 校验 | uint frCrc |
文件目录区
HEX 数据 | 描述 | 010Editor 模板数据 |
---|---|---|
50 4B 01 02 | 目录中文件文件头标记 | char deSignature[4] |
3F 00 | 压缩使用的 pkware 版本 | ushort deVersionMadeBy |
0A 00 | 解压文件所需 pkware 版本 | ushort deVersionToExtract |
00 00 | 全局方式位标记(有无加密),目录文件标记后 4bytes | ushort frFlags |
00 00 | 压缩方式 | enum COMPTYPE frCompression |
E8 A6 | 最后修改文件时间 | DOSTIME frFileTime |
32 53 | 最后修改文件日期 | DOSDATE frFileDate |
0C 7E 7F D8 | CRC-32 校验 | uint frCrc |
文件目录结束
50 4B 05 06 | 目录结束标记 | char elSignature[4] |
---|---|---|
00 00 | 当前磁盘编号 | ushort elDiskNumber |
00 00 | 目录区开始磁盘编号 | ushort elStartDiskNumber |
rar文件结构
HEX 数据 | 描述 | 010Editor 模板数据 |
---|---|---|
52 61 72 21 1A 07 00 | rar 文件头标记,文本为 Rar! |
Main block
HEX 数据 | 描述 | 010Editor 模板数据 |
---|---|---|
33 92 B5 E5 | 全部块的 CRC32 值 | uint32 HEAD_CRC |
0A | 块大小 | struct uleb128 HeadSize |
01 | 块类型 | struct uleb128 HeadType |
05 | 阻止标志 | struct uleb128 HeadFlag |
File Header
HEX 数据 | 描述 | 010Editor 模板数据 |
---|---|---|
43 06 35 17 | 单独块的 CRC32 值 | uint32 HEAD_CRC |
55 | 块大小 | struct uleb128 HeadSize |
02 | 块类型 | struct uleb128 HeadType |
03 | 阻止标志 | struct uleb128 HeadFlag |
Terminator
HEX 数据 | 描述 | 010Editor 模板数据 |
---|---|---|
1D 77 56 51 | 固定的 CRC32 值 | uint32 HEAD_CRC |
03 | 块大小 | struct uleb128 HeadSize |
05 | 块类型 | struct uleb128 HeadType |
04 00 | 阻止标志 | struct uleb128 HeadFlag |
压缩包伪加密
zip文件:
可以直接用ZipCenOp.jar修复:
java -jar ZipCenOp.jar r screct.zip
WinRAR打开、010改标志位、binwalk直接分离
如果压缩文件已损坏,则尝试用winrar打开,工具-修复压缩包
压缩源文件数据区:7-8位表示有无加密
压缩源文件目录区:9-10位表示是否是伪加密
一般这俩地方都是09 00的,大概率就是伪加密了(直接把第二个PK后的09改了就行)
rar文件:
第24个字节尾数为4表示加密,0表示无加密,将尾数改为0即可破解伪加密
CRC爆破(压缩包中文件比较小的时候)
使用CRC爆破需要文件大小小于等于18个字节
参考文章:https://blog.csdn.net/mochu7777777/article/details/110206427
可以使用CTFD中的两种脚本爆破一下(速度不同)
明文攻击
已知所有的明文或三段密钥
使用Advanced Archive Password Recovery破解
有和压缩包中的一样(CRC值一样)的文件时,压缩然后用AAPR进行明文攻击,这个攻击的过程可能需要几分钟
有了完整的三段密钥也可以使用这个工具破解密码
使用pkcrack破解
1 | #将pkcrack作为系统命令使用 |
1 | pkcrack -c "README.txt" -p README.txt -C flag.zip -P README.zip |
1 | -C:要破解的目标文件(含路径) |
已知部分明文
利用bkcrack进行攻击
参考资料
1 | https://www.freebuf.com/articles/network/255145.html |
该利用方法的具体要求如下:
1 | 至少已知明文的12个字节及偏移,其中至少8字节需要连续。 |
如何判断压缩工具(参考自B神的博客)
压缩攻击 | VersionMadeBy(压缩所用版本) |
---|---|
Bandzip 7.06 | 20 |
Windows自带 | 20 |
WinRAR 4.20 | 31 |
WinRAR 5.70 | 31 |
7-Zip | 63 |
bkcrack常用参数
1 | -c 要解密的文件 |
例题:
1 | #Tips: |
1)简单的加密文本压缩包破解
1 | flag{16e371fa-0555-47fc-b343-74f6754f6c01} |
1 | #攻击步骤如下: |
1 | #-p 指定的明文不需要转换,-x 指定的明文需要转成十六进制 |
2)利用PNG图片文件头破解
1 | #准备已知明文 |
3)利用压缩包格式破解
1 | 将一个名为flag.txt的文件打包成ZIP压缩包后,发现文件名称会出现在压缩包文件头中,且偏移固定为30。且默认情况下,flag.zip也会作为该压缩包的名称。 |
1 | echo -n "flag.txt" > plain1.txt #-n参数避免换行,不然文件中会出现换行符,导致攻击失效 |
Tips:如果这里用"XXXXX.txt"作为plaint1.txt无法破解出密钥,可以试试直接去掉后缀再作为plaint1.txt
例如:NKCTF2023——五年Misc,三年模拟
1 | #echo -n "handsome.txt" > plain1.txt 破解失败 |
4)EXE文件格式破解
1 | EXE文件默认加密情况下,不太会以store方式被加密,但它文件格式中的的明文及其明显,长度足够。如果加密ZIP压缩包出现以store算法存储的EXE格式文件,很容易进行破解。 |
1 | echo -n "0E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000" | xxd -r -ps > mingwen |
5)流量包pcapng格式解密
1 | echo -n "00004D3C2B1A01000000FFFFFFFFFFFFFFFF" | xxd -r -ps > pcap_plain1 |
6)网站相关文件破解
1 | robots.txt的文件开头内容通常是User-agent: * |
1 | echo -n '<?xml version="1.0" encoding="UTF-8"?>' > xml_plain |
7)SVG文件格式破解
1 | #SVG是一种基于XML的图像文件格式 |
8)VMDK文件格式破解
1 | echo -n "4B444D560100000003000000" | xxd -r -ps > plain2 |
有时候直接给你部分明文的情况(2023 DASCTFxCBCTF)
直接在bkcrack中使用以下命令即可,key是题目给的压缩包中被压缩文件的部分明文
1 | bkcrack -C purezip.zip -c 'secret key.zip' -p key |
直接给了加密压缩包中部分文件的情况
例题1 - 2023 古剑山-幸运饼干
-
可以先把该文件用压缩软件压缩成一个压缩包,然后用 Advanced Archive Password Recovery 明文攻击试试看
-
用压缩软件把该文件压缩成一个压缩包,然后使用 bkcrack 进行明文攻击
为什么需要压缩成压缩包呢?因为如果不带上压缩包进行明文攻击的话会报下面这个错误
1
2
3$ bkcrack -C flag.zip -c 'hint.jpg' -p hint.jpg
bkcrack 1.5.0 - 2023-03-08
Data error: ciphertext is smaller than plaintext.用 -P 参数带上压缩包后即可正确解密出密钥
1
2
3
4
5
6
7
8
9$ bkcrack -C flag.zip -c hint.jpg -p hint.jpg -P hint.zip
bkcrack 1.5.0 - 2023-03-08
[14:37:27] Z reduction using 25761 bytes of known plaintext
100.0 % (25761 / 25761)
[14:37:29] Attack on 289 Z values at index 21821
Keys: afb9fee3 f8795353 f6de1d4e
100.0 % (289 / 289)
[14:37:29] Keys
afb9fee3 f8795353 f6de1d4e因此这种情况一定要记得将已有的文件用适当的压缩方法压缩成压缩包,然后用-P参数带上这个压缩包
例题1 - 2023 铁三决赛-baby_jpg
我们先从部分伪加密的压缩包中分离出了 serect.pdf,然后从PDF中 foremost 出了加密压缩包中的 sha512.txt
将 sha512.txt 压缩成 sha512.zip,然后使用下面的命令进行明文攻击即可:
其中 -C 后是要破解的压缩包,-c 后是压缩包中我们要破解的文件,-P 后是我们压缩好的压缩包,-p 后是我们已得的文件
1 | $ bkcrack -C 00000218.zip -c 'sha512.txt' -P sha512.zip -p sha512.txt |
破解出密钥后,用 -U 参数修改压缩包密码并导出
1 | $ bkcrack -C 00000218.zip -k ed3fb6a9 1c4a7211 c07461ed -U out.zip 111 |
在比赛中的使用记录
2022 西湖论剑zipeasy
1 | bkcrack -C zipeasy.zip -c dasflow.zip -x 30 646173666c6f772e706361706e67 -x 0 504B0304 > 1.log & |
2023 DASCTFxCBCTF
利用bkcrack反向爆破密钥
1 | bkcrack -k e48d3828 5b7223cc 71851fb0 -r 3 \?b |
然后如果要对得到的密钥进行MD5加密,可以使用CyberChef(From Hex + MD5)
Tips:题目做不出来可以尝试多换几个压缩软件:Bandzip、Winrar、7zip、360压缩、2345压缩等
暴力破解(爆破时注意限制长度)
可以使用 Advanced Archive Password Recovery 进行爆破
(1) 如果知道部分的密码,可以使用掩码攻击,例如:???LiHua
(2) 没啥思路的时候可以直接用纯数字密码爆破看看,也可以用字典爆破
(3) 如果爆破的速度很慢,可以用 Passware Kit Forensic 2021 v1 (64-bit) 来爆破(也可以自定义字典)
连环套压缩包
可以用fcrackzip进行爆破或者使用CTFD中的脚本爆破
1 | import zipfile |
未知后缀的压缩包
可以多用几个压缩软件试试,比如Winrar 7z
分卷压缩包合并
1 | copy /B topic.zip.001 + topic.zip.002+topic.zip.003+topic.zip.004+topic.zip.005+topic.zip.006 topic.zip |
压缩包炸弹
很小的压缩文件,解压出来会占据巨大的空间,甚至撑爆磁盘
处理方法:010中直接编辑压缩包文件,看看是否藏有另一个压缩包
根据010中的模板修改了某些参数
有些题目可能会修改源数据中压缩包文件中被压缩文件的文件名的长度
源数据中被压缩文件名字的长度对不上也会导致解压后文件无法打开
所以…010的模板功能真的非常非常的好用!
压缩包密码是不可见字符
字节数很短的情况
直接写个Python脚本爆破即可
1 | import zipfile |
字节数较长的情况
需要先把密码base64编码一下,然后再base64解码成byte类型作为密码
1 | import base64 |
流量分析
USB流量分析
Alt键+数字键分析,可以获得ASCII码