题目不算难,获得了证书但成绩不算好,密码学应该要ak的,还是不够专注吧,做一半就跑去看杂项了。学到很多东西,遇到了CTF拿到国奖和国际奖以及AI发paper、机器人竞赛国二的大大大大佬,也认识了初中就能参加春秋杯进前十的小可爱…人外有人,天外有天,需要勤勤恳恳,踏踏实实地提升自己,某一天终会绽放光芒。最后,西安加油,山河无恙!
Misc
八卦迷宫:
走出迷宫只有一条路径,根据题目说的需要提交拼音,猜测只需要按照路径把路径上的卦象对应的汉字拼音依次输入即可。需要用cazy{}包裹。
西安加油
wireshark打开附件,http过滤,找到状态码为200的包:
其中一个只有数字和大写字母,猜测为base32:
网站解密,给出了图片顺序,猜测和flag有关:
另一个包的数据段里面是base64先解密前面一段,发现有关键词PK,猜测是zip文件base64加密:
解密脚本如下:
1 | import base64 |
数据段太长了,简写了。
得到zip文件,解压发现是47张图,按照base32明文的提示进行编号,拼凑可得flag
Crypto
no_cry_no_can
类似于简单的多表替换,将flag的每一位依次与key进行异或加密(key重复几次),得到密文,根据前几位”cazy{“可先将key求出来,然后用key与密文异或解密,附脚本:
1 | b'<pH\x86\x1a&"m\xce\x12\x00pm\x97U1uA\xcf\x0c:NP\xcf\x18~l' |
cazy{y3_1s_a_h4nds0me_b0y!}
no_can_no_bb
简单aes加密,自定义了填充算法pad,由于密钥key随机范围太小,仅在1到2的20次方之间,可以通过爆破密钥破解密码,得到flag,附脚本:
1 | from Crypto.Util.number import * |
cazy{n0_c4n,bb?n0p3!}
no_math_no_cry
赛后才想起来开平方有负根,这题白给了QAQ. 初中数学题,含开平方的计算,exp:
1 | from Crypto.Util.number import* |
cazy{1234567890_no_m4th_n0_cRy}
LinearEquations
这题也是白给,前几天正好学了LCG的攻击方式,已经推出递推关系了,当时忙着去拼杂项那题的flag没做下去。完整分析过程:
exp:
1 | from Crypto.Util.number import * |
cazy{L1near_Equ4t1on6_1s_34sy}
math
这道题应该算是最难的一道,也是唯一做不出来的,看了La大佬的unusualrsa学习解法:
exp:
1 | from Crypto.Util.number import * |
flag{c4617a206ba83d7f824dc44e5e67196a}