【青少年CTF】Crypto-easy 题解小集合
Crypto-easy
1.BASE
拿到附件用cyberchef自动解码得到flag
2.basic-crypto
拿到附件发现是一串01的数字,这时候想到二进制转换
然后base64在线解码
接着根据提示想到凯撒密码解密
最后通过字频查找找到flag
3.CheckIn
先用base64解码
再用ROT47解码得到flag
4.childRSA
先用factordb分解N
然后套用脚本得到flag
from Crypto.Util.number import *
import gmpy2
n =
c =
e=
p=
q=
phi = (p-1)*(q-1)
d=gmpy2.invert(e,phi)
m=pow(c,d,n)
print(long_to_bytes(m))
5.crypto-classic1
查看附件根据提示知道这是键盘密码,低下头望着手中的键盘若有所思,你会发现每一组用空格隔开的字母串在键盘上连起来都围着一个字母,这时候把五个字母连起来你会得到一个五位数的压缩包密码
拿到压缩包附件,根据第二层提示维吉尼亚密码,查看维吉尼亚表格找到密钥进行解密得到最后flag
6.NO SOS
拿到附件发现是一堆-和.
将他们替换成A和B(因为比较少所以建议手动替换)
然后根据提示培根密码解密得到flag
7.一起下棋
根据提示下棋,推测是棋盘密码,进行解密得到flag
8.Morse
根据提示先用Morse密码进行解密,然后16进制转换文本得到flag
9.爱丽丝的兔子
根据提示兔子我们猜测这是rabbit解密,得到一堆核心价值观
然后这就很明显了,接着用核心价值观解密
又根据提示得知是栅栏密码解密,栅栏数为6得到最终flag(有些网站解不出来最好多解几次)
10.Relayb64
直接base64换表得到flag
11.ABBB
拿到一堆AB字符先把AB转成-和.
然后morse解密一下
然后放在字频分析里查flag,找到FLAG IS的样式,改掉大小写得到flag
12.UUID
先用栅栏密码解一下,栅栏数为32
然后用ROT47 Burte Force解出来找到flag
然后把31、32结合一下得到最终flag
flag{7914d2ce-880c-40c0-8167-2f77f3101b44}
(至于怎么结合的我也没搞明白,难绷,但是这好像是比赛题目都是有wp的,大家也可以去看看)
13.op
经典套娃题只能说
第一层:查看图片属性得到压缩包密码
第二层:base64换表
第三层:base62
第四层:rabbit解密
第五层:base64换表
第六层:base58
拿到最后一层压缩包密码打开用base64再解一下得到最终flag
(在线解码的时候有些网站解不开可以多试试其他网站)
14.single
拿到直接丢到quipqiup中分析一下,搜索得到flag
15.emoji
查看附件是一堆emoji表情包,于是我们用emoji表情包解码(base100)
然后XXencode解码,最后核心价值观解码得到flag
16.some word
感觉没有什么别的要说的,也是连环解码
BubbleBabble编码,JSfuck编码,Brainfuck编码,以此解完得到flag
16.Keyboard
根据提示我们知道是键盘密码,于是联想到手机26键盘和九宫格
举个例子,比如附件给出的 ooo yyy ii
先看26键,字母o在键盘上所对应的数字是9,在看到九宫格9所对应的有wxyz四个字母,然而字母o出现了三次依次数下去,第一个字母是y
原理相同字母y在26键上对应6,九宫格有mno,出现三次第二个字母就是o
i对应8,8下面有tuv,出现两次第三个字母就是u,以此类推….(感觉好绕我也不知道我讲明白没)
于是编写脚本得出flag
Vcipher = "ooo yyy ii w uuu ee iii ee uuu ooo r yyy yyy e"
base=" qwertyuiop"
a=[" "," ","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"]
for part in cipher.split(" "):
s=base.index(part[0])
count=len(part)
print(a[s][count-1],end="")