「配枪朱丽叶。」

RootのCTF学习笔记。

AFCTF2018/BUUCTF-BASE

题目下载

其实这道题仔细发现,不是base16就是base32要么就是base64
稍微考察了下base16/32/64的基本特征,另外文档很大,打开很容易未响应,需要拿脚本解码。

base16就是十六进制
base32只由大写字母+数字组成
base64由大写字母+小写字母+数字组成,以及“+”和“/”符号。

自己写了脚本,原理也很简单暴力。。打开把内容读入字符串,三种解码方法挨个试,能解出来就算,不断轮回,直到三种解码方式都报错的时候停止。
脚本停止后会在脚本同级目录生成一个flag文件,里面就是这道题的答案qwq。

import base64
file = open("flag_encode.txt",'r')
file2 = open("flag",'w') 
base = file.read()
while(1):
    try:
        base = base64.b32decode(base).decode()
    except:
        try:
            base = base64.b64decode(base).decode()
        except:
            try:
                base = base64.b16decode(base).decode()
            except:
                print("解码完毕qwq!")
                file2.write(base)
                break