[安洵杯 2019]吹着贝斯扫二维码

[安洵杯 2019]吹着贝斯扫二维码

yzq5GQfI-HN9kSrzQfQL0C9v5Rcs2xgBLP5aTMDCSo0

压缩包里面有个flag.zip文件,但是有密码无法打开

9-35HopXEQoC7oI0AqVpa-P3LhFoX9ZCGFiR0WpnCC4

并且注释信息里有一串字符GNATOMJVIQZUKNJXGRCTGNRTGI3EMNZTGNBTKRJWGI2UIMRRGNBDEQZWGI3DKMSFGNCDMRJTII3TMNBQGM4TERRTGEZTOMRXGQYDGOBWGI2DCNBY

fFT4whvidKrguo10bQKKwODGsC7hda2hwA0h9jNz1HE

经过base32解码和16进制转换后得到另一串,但是显然还没有解密,这时候打开压缩包里的其他文件,发现都是jpg图片

il6iTpiuQRrFn7QYEVGomMF-D4Tr2gIF8MpXrANeBEY

这里参考了其他师傅们的方法,有两种方法给所有图片加.jpg后缀

1.使用python脚本批量修改这些文件后缀为.jpg

import os

path = 'C:\\Users\\Administrator\\Downloads\\test'
for i in os.listdir('./test'):
	if i == 'flag.zip':
		continue
	else:
		oldname = os.path.join(path,i)
		newname = os.path.join(path,i+'.jpg')
		os.rename(oldname,newname)

2.命令:ren * *.jpg

这条命令会把此目录下所有文件重命名,所以使用的时候注意目录位置

还有注意这里的flag.zip文件也被重命名,改回.zip后缀就行

Nof7v-7AbJxi-7N1XgP4SERLJarjsMhVWg2uw87iYJo

tGbcxIGI77-FsDRvxNIeumQNLTF7NjCAg5FaDccRAfk

可以看到图片是二维码碎片,需要用PS拼接,但总共36张碎片,真要一张张硬拼难度太大了,基本上不太可能完成,所以推测图片中应该有其他隐含图片编号的信息。但图片中没有可以直接利用的信息,用010Editor查看文件,发现文件尾FFD9之后还有冗余信息,是一个数字,每张图片都有这个数字且都不一样,猜测这应该就是图片编号了。

Kt7-UdLKTMFcRahIPvQQ4bBH0130BPkPU0HP-5aSaq0

接着参考师傅写好的脚本,把图片重命名

import os
from PIL import Image

#目录路径
dir_name = r"./"
#获取目录下文件名列表
dir_list = os.listdir('./')
#print(dir_list)

#从列表中依次读取文件
for file in dir_list:
    if '.jpg' in file:
        f=open(file ,'rb')
        n1 = str(f.read())
        n2 = n1[-3:]    
        #经过测试发现这里要读取最后3个字节,因为最后还有一个多余的字节,不知道是不是转字符串的原因导致在末尾多了一个字符
        #print(file) #输出文件内容
        #print(n2)
        f.close()    #先关闭文件才能重命名,否则会报`文件被占用`错误
        os.rename(file,n2+'.jpg')    #重命名文件

用PS拼接完成后扫码得到信息

BASE Family Bucket ???

85->64->85->13->16->32

5_ClRLTm-WLOigl6P9P3HRu9GZX1BpGcwplrGCEI7gQ

下面的数字提示了是按照此顺序进行base转换的,我们只要把字符串逆着顺序转换一下,应该就可以得到原来的文本。

但是base家族中没有base13,所以这里的13应该是Rot13。

我们的转换顺序应该如下

base32->十六进制->Rot13->base85->base64->base85

v2ThgRZUC9h1H6q4qkqy2-snZuKXXMcvh-Gx2Fq1fCU

压缩包密码就是ThisIsSecret!233

FbsHRRSwvECT6X91zs6TPSBTu_y1QLy4SvFc6O92Jo4

flag{Qr_Is_MeAn1nGfuL}

posted on 2023-10-31 12:06  跳河离去的鱼  阅读(93)  评论(0编辑  收藏  举报