封神台高校CTF练习(Misc入门靶场)
封神台练习平台
==用到的工具平台==
Unicode加解密:https://www.toolhelper.cn/EncodeDecode/UnicodeChinese
RC4加解密:在线RC4加密解密 (lddgo.net)
MD5加解密:md5在线解密破解,md5解密加密 (cmd5.com)
凯撒密码加解密:在线凯撒密码加密解密 (lddgo.net)
核心价值观加解密平台:CTF在线工具-在线核心价值观编码|核心价值观编码算法|Core Values Encoder (hiencode.com)
栅栏加解密平台:(栅栏密码在线加密解密 - 千千秀字 (qqxiuzi.cn))
Base加解密平台:CTF在线工具-在线base编码|在线base解码|base16编码|base32编码|base64编码 (hiencode.com)
百度识图:https://graph.baidu.com/pcpage/index?tpl_from=pc
(1)杂项1:图片隐写

步骤
将图片下载到本地,并且用文本文档(.txt)打开并查看源码

查看源码,发现有Unicode码
1
#107;ey{z-nsdiua}
在网上搜一个Unicode码解码工具(Unicode与中文 编码/解码 - 锤子在线工具 (toolhelper.cn) ,并解码

得到flag
1
key{z-nsdiua}
(2)杂项2:密文在这里,看看你是否能解开

==RC4原理:==
RC4(Rivest Cipher 4)是一种流密码(stream cipher)算法,用于加密和解密数据。它由Ron Rivest设计并于1987年发布。RC4算法的核心是通过对称密钥生成伪随机位流(pseudo-random stream),然后将明文与该位流进行抑或(XOR)运算来实现加密和解密。
具体来说,RC4算法包括以下步骤:
- 密钥调度算法(Key Scheduling Algorithm,KSA):根据输入的密钥,生成一个密钥调度表(S-box),用于后续的伪随机位流生成。
- 伪随机生成算法(Pseudo-Random Generation Algorithm,PRGA):利用密钥调度表生成一个伪随机位流,该位流的元素会被用作加密过程中的“密钥流”。
- 加密/解密:将明文与伪随机位流进行逐位的抑或运算,以实现加密或解密操作。
在使用RC4算法时,需要注意以下几点:
- 密钥的选择和管理非常重要,弱密钥会导致加密的不安全性。
- 加密和解密使用相同的密钥。
- 在实际应用中,通常需要引入初始化向量(Initialization Vector,IV)来提高安全性。
总的来说,RC4算法是一种快速且简单的加密算法,但由于存在一些安全性方面的问题,如密钥漏洞和偏差等,现在已不推荐作为加密标准使用。
步骤:
RC4解密是需要密钥的,所以需要寻找密钥,题中一个声音在耳边响起,看一下自己的键盘,他好像在组成某种神秘的组合(rtygcvb ,ujmko,ujmko),跟着他的字母在键盘上对一下,于是前两个组成了两个字母

重复敲击两次,那么猜测密钥为zvvzvv,并在网上找一个RC4解密工具解密(在线RC4加密解密 (lddgo.net))
1 | 密文:M6UUSlt6rxWO328Kez8xXCMd |
输入密钥,将字符集选择为UTF-8,输入格式为base64,输出格式为字符串(string)

得到flag
1 | key{zkz-good-kkey} |
(3)杂项3:一段特殊的ascii密文

- 步骤:
1 | 83,121,110,116,71,115,121,110,116,136,135,120,135,108,110,126,115,112,63,61,63,62,108,67,63,69,108,76,76,76,76,138,90,113,66,71,112,110,66,62,62,67,112,112,66,111,112,67,113,63,110,114,69,66,65,110,111,111,113,68,61,63,112,69,68,68,68 |
首先,猜测flag是以“flag”开头的,且121,110,116三个数在2,3,4位置和在7,8,9位置都在,那么先将flag转换为ascii码,为102,108,97,103,
102(+6)108(-11)97(+6)103
121(-11)110(+6)116
那么可以看出108,97,103和121,110,116之间的差距是相同的,那么121-108=13,将所有数字-13
那么写一个python代码,将这些整数转化为ascii码

代码:
1 | a=[83,121,110,116,71,115,121,110,116,136,135,120,135, |
得到部分的flag,md5值其实最后还有个d,这个d其实也是可以跑出来的
1 | Flag:flag{zkz_aqfc2021_628_????}Md5:ca5116cc5bc6d2ae854abbd702c8777d |
这里的一个思路就是尝试用md5解密工具(md5在线解密破解,md5解密加密 (cmd5.com)),但是是不成功的,因为数据源是无穷尽的,而 MD5密文是有限的。
那么这里我就查看了平台的解题思路:标准的md5碰撞,写一个碰撞脚本(碰撞需要一段时间,耐心等待)

代码:
1 | import hashlib |
得到flag
1 | flag{zkz_aqfc2021_628_zxcv} |
杂项3学习资料补充
==hashlib库==
hashlib库是Python的一个标准库,用于提供哈希算法。其中包含多种哈希算法,如MD5、SHA-1、SHA-256等。
MD5 (Message Digest Algorithm 5) 是一种广泛使用的哈希算法,用于将任意长度的输入数据生成一个128位的哈希值。它具有以下特点:
不可逆:无法从生成的哈希值还原出原始数据。
唯一性:不同的输入数据生成的哈希值几乎不会相同。
高效性:计算速度快,适合用于检查数据完整性。
在Python中,可以使用hashlib库中的md5()函数来计算数据的MD5哈希值,示例代码如下:
1 | import hashlib |
这段代码会计算字符串'Hello, World!'的MD5哈希值,并打印出该哈希值。
hexdigest()是hashlib库中hash对象的一个方法,用于获取以十六进制表示的哈希值。在计算完哈希值之后,可以使用hexdigest()方法将哈希值转换为字符串形式,方便输出或者存储。这样可以避免直接输出二进制形式的哈希值,使得结果更易读和使用。
(4)杂项4:一个加密的xlsx表格

打开传送门后,想要下载表格就需要密码

尝试用文本文档(txt)打开寻找线索,真就发现了线索

1 | flag{asd} |
(5)杂项5:刚刚截获德军的密电

==ADFGX古典密码==
1918年,第一次世界大战将要结束时,法军截获了一份德军电报,电文中的所有单词都由A、D、F、G、X五个字母拼成,因此被称为ADFGX密码。ADFGX密码是1918年3月由德军上校Fritz Nebel发明的,是结合了Polybius密码和置换密码的双重加密方案。
A、D、F、G、X即Polybius方阵中的前5个字母。
明文:A T T A C K A T O N C E
经过Polybius变换:AF AD AD AF GF DX AF AD DF FX GF XF
按照表进行转换:
1 | 密文:FA XX DD AG DD XA FF FF AX DX |
第一个字母为行数,第二个字母为列数,转换后
1 | 明文:flagabxxmo |
(6)杂项6:简单加密

synt一看联想到凯撒密码,f与s偏移13位,直接上工具(在线凯撒密码加密解密 (lddgo.net))
1 | 密文:synt{mxnd_pgs_xxxebg13} |

1 | 明文:flag{zkaq_ctf_kkkrot13} |
(7)杂项7:社会主义核心价值观

核心价值观加解密平台:(CTF在线工具-在线核心价值观编码|核心价值观编码算法|Core Values Encoder (hiencode.com))
1 | 密文:公正公正公正诚信文明公正民主公正法治法治诚信民主法治诚信富强公正友善平等公正民主法治民主平等友善敬业法治和谐公正爱国法治诚信富强法治敬业公正爱国平等友善敬业和谐公正和谐富强和谐公正法治诚信和谐 |

1 | 明文:flag{zkaq_shzyh_606} |
(8)杂项8:奇怪的短信

1 | 密文:33 53 21 41 94 52 21 72 74 42 |
手机上发短信有9键和26键,肯定不是和26键有关,考虑9键,
看一个9键键盘:
第一个字母首先考虑f,则看出33,就是“3”的第三个字母,推出密文:
1 | 密文:flagzkaqsh |
(9)杂项9:SOS的求救信息

1 | 密文: |
一眼得摩斯电码,查表解决

1 | 解密得:fhflqaagczgkazl |
这个密码具备f、l、a、g,只是顺序有问题,考虑栅栏加密
==栅栏加密:==
所谓的栅栏密码,就是将一段被加密的明文划分成N个组,然后取每个组的第1个字符,根据情况排列成一段话,特点相对简单,字母不会太多。
1、加密原理:
例如明文:THIS IS ZHISHITOM
去掉空格吧还是:THISISZHISHITOM
设置栏数为3加密:TSHHZIIHTSIOISM
下面分解一下加密过程(分为3组):
第一组:T H I S I
第二组:S Z H I S
第三组:H I T O M
然后按列取出字母:TSH HZI IHT SIO ISM
然后连在一起就形成了加密:TSHHZIIHTSIOISM
2、解密原理
明确了加密的过程,下面逆推就行
加密明文:TSHHZIIHTSIOISM
先划分:
T S H
H Z I
I H T
S I O
I S M
按列顺序取字母:THISISZHISHITOM
完成了解密。
原文链接:https://blog.csdn.net/Makboli/article/details/126464442
栅栏加解密平台:(栅栏密码在线加密解密 - 千千秀字 (qqxiuzi.cn))

1 | 解出的明文:flagzkzhqacgalf |
但是仍未通过,查看解析发现flag是需要将他倒置才可以
1 | 提交flag:flagcaqhzkzgalf |
(10)杂项10:Base

1 | 密文:RzVBVE1RUlhJRTNER05aVUdZM0RPUVJXR0kzRENOWlRHWTJUR05SVEdRMlVNTlJTR1lZVE9NWldHVVpUQ01aV0c1Q0E9PT09 |
Base加解密平台:CTF在线工具-在线base编码|在线base解码|base16编码|base32编码|base64编码 (hiencode.com)
- Base64,包含大写字母(A-Z),小写字母(a-z),数字(0-9)以及+/;
- Base32,只有大写字母(A-Z)和数字234567;
- Base16,只有16进制的数据,其范围是数字(0-9),字母(ABCDEF)。
该密文有小写所以为Base64

1 | Base64解密后:G5ATMQRXIE3DGNZUGY3DOQRWGI3DCNZTGY2TGNRTGQ2UMNRSGYYTOMZWGUZTCMZWG5CA==== |
解密后只有大写和数字234567,判断为Base32,继续解密

1 | Base32解密后:7A6B7A6374667B6261736536345F6261736531367D |
此时只有16进制的数据,其范围是数字(0-9)和字母

1 | 得到flag:zkzctf{base64_base16} |
(11)杂项11:这是我最喜欢的女明星

第一反应是像之前一样下载下来用txt打开找flag,但是发现有太多信息了,找不到,于是回去看了解析,居然是用试图软件去识别图片人物啊!

那这个女神就是邱淑贞了,那就去查一查她的英文名吧!
flag:Chingmy Yau
(12)杂项12:打由诗

在网上查找得知此为当铺密码,将其每个字都转换为数字
==当铺密码==:
当前汉字有多少笔画出头,就是转化成数字几。例如:
王:该字外面有 6 个出头的位置,所以该汉字对应的数字就是 6;
口:该字外面没有出头的位置,那就是0;
人:该字外面有 3 个出头的位置,所以该汉字对应的数字就是 3;
1 | 密文:由口中,由口井,圭土,由口人,由中人,由中中,由口主,由中中,圭土,由凹凸,由由中,由目圭,克工 |
将其转换为数字,并用ASCII码解开
1 | 明文:102 108 97 103 123 122 107 122 95 100 112 109 109 54 |
(13)杂项13:佛说

网上查看其为与佛论禅,那就寻找工具解密
1 | 密文:佛曰:諳娑蒙罰世那真耶除梵沙缽能蒙切一怯南缽爍皤若佛涅無侄殿依缽以俱耨皤大缽若道他怯數等侄即喝至能楞怯伊奢阿諳利哆跋遮知智罰悉缽伽即所遠那等多 |
解密工具:与佛论禅密码 - Bugku CTF

1 | flag{zkaq_fochan} |
(14)杂项14:奇怪的Base加密

下载文件,这么长的一段Base,还有;base64,这个关键词,这个一定是图片Base64加密,直接解密就可以了
加解密平台:https://tool.chinaz.com/tools/imgtobase/
记得加一个头部图片的格式:data:image/jpg;

1 | flag{base64_tupian_a} |
(15)杂项15:跳舞小人

跳舞小人中明显有一个二维码,截图发现少了一块,补上直接扫描
得到flag
1 | flag{GC-ACUID} |
(16)杂项16:神秘图片

下载文件,然后右键属性,看到里面的照相机镜头信息
得到flag
1 | flag{ctf_tupian_666} |
(17)杂项17:可达鸭

看到图片明显能感觉到显示不全,下载发现是一个png图片

自然就想到利用16进制编辑器打开图片,到找IHDR调整大小,发现后面的flag,可以使用网上的16进制编辑器,把图片长度更改;工具:HexEd.it — 基于浏览器的十六进制编辑器

更改为:

得到图片:
1 | flag{ke-da-ya!} |
(18)杂项18:一组神秘的图片

下载压缩包,解压之后得到一些黑白图,这个图片只有黑和白两种,有点像二进制中的0和1,尝试把白色换成0,黑色换成1,得出一串二进制
1 | 二进制:01100110011011000110000101100111011110110110011100101101011000110110011101111101 |

将其转换为ASCII码,工具:2进制到ASCII字符串在线转换工具 - Coding.Tools

1 | flag{g-cg} |
(19)杂项19:神奇的压缩包加密

