[ACTF新生赛2020]crypto-classic1
附件打开:
hint.txt
哇,这里有压缩包的密码哦,于是我低下了头,看向了我的双手,试图从中找到某些规律
xdfv ujko98 edft54 xdfv pok,.; wsdr43
vigenere.zip
根据提示不难发现是键盘密码:
得到压缩包密码:circle
输入压缩包密码得到:
SRLU{LZPL_S_UASHKXUPD_NXYTFTJT}
根据压缩包名称vigenere解码,根据出题人的尿性猜测SRLU对应ACTF,发现这四个字母对应的秘钥是SPSP,所以猜测秘钥就是SP或者SPSP。
可以看到最后几个字符已经能成功解密为vigenere,但是提交了一下发现不对。
裂开了,去看了一下大佬的WP,发现大佬直接用脚本暴力破解。
修改后的python脚本:
# 破解key
s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
s1 = 'ACTF'
s2 = 'SRLU'
key = ''
for i in range(len(s1)):
key += s[(s.find(s2[i]) - s.find(s1[i])) % 26]
print(key)
# 解密
cipher = 'SRLU{LZPL_S_UASHKXUPD_NXYTFTJT}'
key = 'SP'
# decode
flag = ''
for i in range(0, len(cipher)):
flag += table[(table.find(cipher[i]) + 26 - table.find(key[i % len(key)])) % 26]
print(flag)
cipher = SRLU{LZPL_S_UASHKXUPD_NXYTFTJT}
ACTF{WHAT_A_CLASSICAL_VIGENERE}
尝试后得到flag:
flag{what_a_classical_vigenere}
这个题真的吐了,解出前后解不出中间,爆破输出还要转小写,暴打出题人!!!