第七届全国工控系统信息安全攻防竞赛-Family_Bucket_6+1
一、解题思路
1.题目名称全家桶6+1,根据密码学中全家桶猜想是base家族编码,1可能是其它一种类型加密或编码;
2.查看txt文件中所给字符串,猜测可能是base16编码,解码失败猜测在这里做了其它加密编码,使用rot13进行解码;
3.rot13解码后使用base16再次解码,根据所获得字符串内容判断为base32编码;
4.依次继续观察字符串内容依次使用base58、base64、base85解码、base92解码获得其中的flag。
二、解题脚本
#coding:utf-8
import codecs,py3base92,base64,base58
str = input(“请输入字符串”)
rot13 = codecs.getdecoder( “rot-13” )
b16 = rot13( str )[0]
print(‘b16:’+b16)
b16 = b16.encode()
b32 = base64.b16decode( b16 ).decode()
print(‘b32:’+b32)
b32 = b32.encode()
b58 = base64.b32decode( b32 ).decode()
print(‘b58:’+b58)
b58 = b58.encode()
b64 = base58.b58decode( b58 ).decode()
print(‘b64:’+b64)
b64 = b64.encode()
b85 = base64.b64decode( b64 ).decode()
print(‘b85:’+b85)
b85 = b85.encode()
b92 = base64.b85decode( b85 ).decode()
print(‘b92:’+b92)
flag = py3base92.decode( b92 )
print(‘flag:’+flag)