天天看点

[ACTF新生赛2020]crypto-classic1

[ACTF新生赛2020]crypto-classic1

附件打开:

[ACTF新生赛2020]crypto-classic1

hint.txt

哇,这里有压缩包的密码哦,于是我低下了头,看向了我的双手,试图从中找到某些规律
xdfv ujko98 edft54 xdfv pok,.; wsdr43
           

vigenere.zip

[ACTF新生赛2020]crypto-classic1

根据提示不难发现是键盘密码:

得到压缩包密码:circle
           

输入压缩包密码得到:

SRLU{LZPL_S_UASHKXUPD_NXYTFTJT}
           

根据压缩包名称vigenere解码,根据出题人的尿性猜测SRLU对应ACTF,发现这四个字母对应的秘钥是SPSP,所以猜测秘钥就是SP或者SPSP。

[ACTF新生赛2020]crypto-classic1

可以看到最后几个字符已经能成功解密为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}
           

这个题真的吐了,解出前后解不出中间,爆破输出还要转小写,暴打出题人!!!

继续阅读