https://buuoj.cn/challenges#%E4%B8%80%E8%B7%AF%E5%88%B0%E5%BA%95

BUUCTF:一路到底_txt文件


BUUCTF:一路到底_txt文件_02


BUUCTF:一路到底_十六进制_03


每个txt的关键点是前面的数字

BUUCTF:一路到底_txt文件_04


第一个txt文件内容中的数字是20555转换为十六进制发现是504b,再看看这个txt给的下一个文件内容

BUUCTF:一路到底_ci_05


BUUCTF:一路到底_ci_06


寻找提示找到第二个txt中的数字是772转换为十六进制为304,这里应该还需要十六进制补高的,也就是0304504b0304zip的十六进制文件头,利用py脚本按照给的提示依次取出所有的数字,转换为十六进制再以字节流的形式写入flag.zip

import binascii

hexdata = ''
with open('./files/start.txt') as f:
    cont = f.read()
    nexttxt = cont[-36:]
    hexdata += '{:04x}'.format(int(cont[0:cont.find(':')-1]))
    while True:
        path = './files/' + nexttxt
        try:
            with open(path) as f:
                cont = f.read()
                nexttxt = cont[-36:]
                hexdata += '{:04x}'.format(int(cont[0:cont.find(':')-1]))
        except:
            break

with open('flag.zip','wb') as f:
    f.write(binascii.unhexlify(hexdata))

得到如下

BUUCTF:一路到底_txt文件_07


这个说实话爆破有点坑,什么提示都没,看了下Ga1axy师傅的wp,爆破26字母小写+数字

BUUCTF:一路到底_十六进制_08


得到压缩包密码:tgb678

解压得到image.png

BUUCTF:一路到底_txt文件_09


文件头应该是jpg的,修改文件头为jpg文件头:FF D8 FF E0

BUUCTF:一路到底_txt文件_10

flag{0c6b489ca956e2fd94dce12be4bf0729}