BUU [安洵杯 2019]吹着贝斯扫二维码(详解)

本文描述了一次IT安全挑战,涉及解密加密文件、识别二维码碎片、使用Python脚本重命名和拼接图片,最终通过编码转换找到压缩包密码的过程。
摘要由CSDN通过智能技术生成

打开压缩包查看,发现flag.zip,发现是加密文件,且有备注是一串字母,猜测是加密后的密码,尝试解密无果,查看其它信息

010Editor打开其他任意一个文件查看信息

发现均为jpg文件,为文件添加后缀.jpg(由于文件过多,所以使用ren(rename)指令进行更改)

注意:这里的指令使用通配符,所以flag.zip也改为.jpg后缀,记得要手动改回去

发现这些jpg文件为二维码的碎片,使用ps进行拼接,但这些图片都是乱序的,尝试找找还有没有信息,使用010Editor打开jpg,发现每个文件末尾都有一个数字,猜测这些数字代表二维码的顺序,匹配二维码左上,右上的碎片,发现确实如此,使用脚本将文件名改为序号

import os

# 获取目录下文件名列表
dir_list = os.listdir('./attachment')

# 从列表中依次读取文件
for file in dir_list:
    if '.jpg' in file:
        f = open('./attachment/' + file, 'rb')  # 使用二进制打开文件,此处注意attachment后'/',不加'/',将找不到文件
        n1 = str(f.read())  # 读取文件
        n2 = ''
        # 这里是尝试后发现最后一位为单引号,对于序号为一位数的文件倒数第三位为9,所以限制条件
        if '1' <= n1[-3] <= '3':
            n2 += n1[-3]
        if '0' <= n1[-2] <= '9':
            n2 += n1[-2]
        f.close()  # 先关闭文件才能重命名,否则会报`文件被占用`错误
        os.rename('./attachment/' + file, n2 + '.jpg')  # 重命名文件

得到排序后的jpg

然后将这些图片导入ps,拼接即可,得到完整二维码,此处鉴于我开始时不会拼接图片,所以简单说明一下

打开ps后新建照片,随便选个尺寸都行

更改画布大小,尽量大些,一会要足够拼接二维码

然后将图片全部选中直接拖拉到ps中,然后会生成36个图层,这些图层全在画布中心重叠,使用选择工具就可以移动位置,根据序号将二维码碎片按序拼接就好

拼接后得到的二维码见下图

使用QRResearch得到信息,是压缩包密码的编码顺序,反过来将zip的备注字母段依次使用base32,base16,rot13,base85,base64,base85解码(这里注意13指的是rot13,base编码中没有base13),得到压缩包密码“ThisIsSecret!233”

GNATOMJVIQZUKNJXGRCTGNRTGI3EMNZTGNBTKRJWGI2UIMRRGNBDEQZWGI3DKMSFGNCDMRJTII3TMNBQGM4TERRTGEZTOMRXGQYDGOBWGI2DCNBY

解压成功,得到flag

参考文章

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值