目录
1.crypto0(凯撒密码)
gmbh{ifmmp_dug}
转换地址:http://www.hiencode.com/caesar.html
key为1
2.crypto2(jsfuck)
打开文件为这种,在控制台使用console就可以获得flag了


3.crypto3(aaencode)
把颜文字复制粘贴到控制台,按enter就可以看到了

4.crypto4(知p q e求d)
RSA解密,已知p、q、e解d 利用python计算
p = 447685307
q= 2037
e =17
n = (p - 1) * (q-1)
d = (n+1)//e
print(d)
这里参照大佬的wp
5.crypto5(知p q e c求d)
这里借鉴wp
p=447685307 q=2037 e=17 c=704796792 flag为 flag{m}
import gmpy2
p = 447685307
q = 2037
e = 17
c = 704796792
n = p*q
phi_n = (p-1)*(q-1)
d = gmpy2.invert(e,phi_n)
print("m:",pow(c,d,n))
#m: 904332399012
6.crypto6(Rabbit)
密文:U2FsdGVkX19mGsGlfI3nciNVpWZZRqZO2PYjJ1ZQuRqoiknyHSWeQv8ol0uRZP94MqeD2xz+
密钥:加密方式名称
U2FsdGVkX1 开头 应该是 Rabbit加密 密钥为 Rabbit
地址:http://www.jsons.cn/rabbitencrypt/

7.crypto7(okk!)

文本是这样的,使用https://www.splitbrain.org/services/ook进行转换即可
8.crypto8(BrainFuck)
+++++ +++++ [->++ +++++ +++<] >++.+ +++++ .<+++ [->-- -<]>- -.+++ +++.<
++++[ ->+++ +<]>+ +++.< +++++ +++[- >---- ----< ]>--. .--.- -.-.- --.-.
+++++ +..-- -..<+ +++++ +[->+ +++++ +<]>+ +.<++ ++++[ ->--- ---<] >----
----- .---- -.<++ ++++[ ->+++ +++<] >++++ +++++ +++.< +++++ ++[-> -----
--<]> .++.- ----. <++++ +++[- >++++ +++<] >+++. --.<+ +++++ [->-- ----<
]>--- ----- ---.+ .<+++ +++[- >++++ ++<]> +++++ +++++ ++.<+ +++++ [->--
----< ]>--- ----- ---.- .++++ .<+++ +++[- >++++ ++<]> +++++ +++.< +++++
+[->- ----- <]>-- ----- ---.- ----- .++++ +++++ .---- ----. <++++ ++[->
+++++ +<]>+ +++++ +++++ +.<++ +++[- >++++ +<]>+ ++.<
这里依旧采用上一题的解密网站地址

9.crypto9(serpent)
是一个加密的zip,先爆破密码

得到一个 .dat文件 根据压缩包名称 serpent 应该是serpent加密
后面的这个serpent 解密网站打不开,所以是看的wp里面的flag
10.crypto10(quoted-printable)
=E7=94=A8=E4=BD=A0=E9=82=A3=E7=81=AB=E7=83=AD=E7=9A=84=E5=98=B4=E5=94=87=E8=AE=A9=E6=88=91=E5=9C=A8=E5=8D=88=E5=A4=9C=E9=87=8C=E6=97=A0=E5=B0=BD=E7=9A=84=E9=94=80=E9=AD=82
quoted-printable编码,用一个等号”=”后跟随两个十六进制数字(0–9或A–F)来表示一个非ASCII字符

11.crypto11(md5)
密文:a8db1d82db78ed452ba0882fb9554fc
这是一个md5

12.crypto12(埃特巴什码)
uozt{Zgyzhv_xlwv_uiln_xguhsld}
根据flag格式可知 u对应f o对应 l z对应a t对应g
埃特巴什码:最后一个字母代表第一个字母,倒数第二个字母代表第二个字母。
明文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
密文:Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
进行替换,得到flag

直接提交不正确,a应该是A,flag{Atbase_code_from_ctfshow}
13.crypto13(base多重)
利用脚本去帮我们 循环多次解密base
import base64
filename = r"C:\Users\Administrator\Desktop\base家族\base家族\base.txt"
with open(filename) as f:
s = f.read()
while True:
try:
s = base64.b16decode(s)
continue
except:
pass
try:
s = base64.b32decode(s)
continue
except:
pass
try:
s = base64.b64decode(s)
continue
except:
pass
break
print(s)
b'flag{b4Se_Fami1y_Is_FUn}'
14.crypto14(base64编码表换表)
这里借鉴大佬的wp,感谢大佬的wp
一堆0 1 将二进制01串转换为 16进制 得到:
3333203435203530203266203333203536203465203436203436203664203465203435203431203665203663203438203434203335203634203433203464203664203536203438203434203335203631203634203339203735203437203061
hex 解码得到:
33 45 50 2f 33 56 4e 46 46 6d 4e 45 41 6e 6c 48 44 35 64 43 4d 6d 56 48 44 35 61 64 39 75 47 0a
再次解码:
得到 3EP/3VNFFmNEAnlHD5dCMmVHD5ad9uG
直接base64解码 不行,这里需要根据base64编码表 对这串代码进行一下 移位替换
看一下 我们的密文开头是 3EP/ 而flag的base64编码为:ZmxhZw==
位移刚好是30 写脚本还原一下
s= '3EP/3VNFFmNEAnlHD5dCMmVHD5ad9uG'
a = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='
flag = ''
for i in s:
flag += a[(a.index(i)-30)%64]
if len(flag)%4!=0:
flag += '='*(4-len(flag)%4)
print(flag)
print(base64.b64decode(flag).decode('UTF-8'))
#ZmxhZ3vnnIvmiJHplb/kuI3plb8/fQo=
#flag{看我长不长?}
15.萌新_密码5(当铺密码)
由田中 由田井 羊夫 由田人 由中人 羊羊 由由王 由田中 由由大 由田工 由由由 由由羊 由中大
当铺密码加密方式:前汉字有多少笔画出头,就是转化成数字几
2559

被折叠的 条评论
为什么被折叠?



