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

Posted Arc_0ne

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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}

以上是关于BUUCTF[安洵杯 2019]吹着贝斯扫二维码的主要内容,如果未能解决你的问题,请参考以下文章

BUUCTF:[安洵杯 2019]easy_serialize_php

[安洵杯 2019]iamthinking

刷题记录:[安洵杯 2019]easy_serialize_php

[安洵杯 2019]easy_web

[安洵杯 2019]不是文件上传

2019安洵杯