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

题目链接:[安洵杯 2019]吹着贝斯扫二维码

题目
下载压缩包解压得到这么一些文件,可以看到一堆未知类型文件和一个flag.zip
在这里插入图片描述
老规矩,把这些没有拓展名的文件用010Editor打开,发现都是jpg类型文件。
在这里插入图片描述
需要给这些文件添加拓展名,直接使用cmd下的ren命令批量重命名,添加.jpg拓展名。当然,这里可以用Python写脚本,但个人认为这里用cmd命令更方便快捷。

命令:ren * *.jpg
//这条命令会把此目录下所有文件重命名,所以使用的时候注意目录位置
//还有注意这里的flag.zip文件也被重命名,改回.zip后缀就行


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

这里我用Python脚本获取每个文件最后两个字节,并用这两个字节重命名文件,便于用PS时弄清图片顺序,直接附上Python脚本,代码写得很烂,只是图完成功能,希望大佬路过可以给点建议。

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:注意最后这些序号为90多的,其实前面的9是jpg文件尾FFD99,实际上这些序号为90多的应该是个位数,也就是1,2,3,……,拼接的时候要注意一下

PS拼接一下,效果如下图:
在这里插入图片描述扫描结果为:

BASE Family Bucket ??? 
85->64->85->13->16->32

翻译翻译就是base全家桶,也就是base家族

现在再来看看压缩包flag.zip,打开压缩包可以看到除了一个flag.txt的加密文件外,还有一段备注信息,根据题目提示应该是base加密过的:

GNATOMJVIQZUKNJXGRCTGNRTGI3EMNZTGNBTKRJWGI2UIMRRGNBDEQZWGI3DKMSFGNCDMRJTII3TMNBQGM4TERRTGEZTOMRXGQYDGOBWGI2DCNBY

在这里插入图片描述
根据二维码扫描结果:

BASE Family Bucket ??? 
85->64->85->13->16->32

下面的数字提示了是按照此顺序进行base转换的,我们只要把字符串逆着顺序转换一下,应该就可以得到原来的文本。
但是base家族中没有base13,所以这里的13应该是Rot13
我们的转换顺序应该如下

base32->base16->Rot13->base85->base64->base85

在线base编码转换工具:base编码转换

接下来按顺序解码:
base32:

3A715D3E574E36326F733C5E625D213B2C62652E3D6E3B7640392F3137274038624148

base16:

q]>WN62os<^b]!;,be.=n;v@9/17'@8bAH

Rot13:

:d]>JA62bf<^o]!;,or.=a;i@9/17'@8oNU

base85:

PCtvdWU4VFJnQUByYy4mK1lraTA=

base64:

<+oue8TRgA@rc.&+Yki0

base85:

ThisIsSecret!233

最后得到ThisIsSecret!233,这应该就是压缩包密码了,解压一下flag.zip,即可得到flag

flag{Qr_Is_MeAn1nGfuL}

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值