crypto1
看提示发现密文形式很像flag,加上后面有一个倒序,发现密文倒过来就是flag
crypto2
打开是一段加密文本,先用浏览器的控制台试试,按住F12打开控制台,复制,enter,就有了
crypto3
打开是一段颜文字,试试用AAencode解密,
crypto4
题目要求我们计算d的值,根据RSA算法的原理进行计算,利用python脚本
获得d的值
crypto5
同4
获得m的值
crypto6
打开文件,发现U2FsdGVkX1开头的可能是Rabbit,AES,DES,后面提示密钥和加密方式,应该是Rabbit加密
在线解密,获得flag
crypto7
打开文本发现,全是ook,ook编码即是BrainFuck编码,用在线解码https://www.splitbrain.org/services/ook
也是OK了
crypto8
用这个https://www.nayuki.io/page/brainfuck-interpreter-javascript
crypto9
解压需要密码,ARCHPR进行爆破
使用在线解码 :Serpent Encryption – Easily encrypt or decrypt strings or files
crypto10
提示是明文,打开是这个
直接复制到浏览器看看啥玩意
crypto11
数了一下只有31位,使用md5解密
输入发现就是flag
crypto0
第一眼发现这个很像ctf的形式,这里可以联想到凯撒密码,字母发生了偏移,加上我们知道flag的形式,不难看出我们所有字母向前偏移一位就可以获得flag
flag{hello_ctf}
crypto12
这一串和凯撒很像,但是发现不能获得flag,那有可能是埃特巴什码,
解码获得flag
flag{atbase_code_from_ctfshow}
发现不对,正确的为flag{Atbase_code_from_ctfshow}
crypto13
bace家族,因为我们不知道加密了几次,所以通过python进行暴力破解
import base64
filename = r"C:\Users\lenovo\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}'
crypto14
一看就是二进制,但是flag一般都尉字符数字型,应该是多层加密,不懂就看wp
二进制转换为十六进制,十六进制转化为字符串,发现base64无法解密,用脚本得base64正确编码
修改此处的 s
s = '3EP/3VNFFmNEAnlHD5dCMmVHD5ad9uG'
flag_exp = 'Zmxh' # flag{xxxx...} 开头的字符串的 base64 编码一定是 Zmxh 开头
import base64
base64_table = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
def base64_offset(text):
'''
计算 base64 表的偏移量
'''
global base64_table
return base64_table.index(text)
def main():
global base64_table
# 计算偏移量
diff = base64_offset(flag_exp[0]) - base64_offset(s[0])
index = []
for one in s:
index.append(base64_offset(one) + diff)
text = ''
for i in index:
text += base64_table[i]
if len(text)%4!=0:
text = text + "=" * (4-(len(text)%4))
print(f'base64 解码结果:{text}')
print(f'明文:{base64.b64decode(text).decode()}')
if name == 'main':
main()
用大佬脚本获得flag
flag{看我长不长?}