BUUCTF 吹着贝斯扫二维码

"本文详细记录了解密一个加密ZIP文件的过程,通过分析文件后缀、内容和顺序,将图片拼接成二维码,并使用一系列编码转换(Base32、Base16、Rot13等)得到解压密码。最终揭示了隐藏的flag:flag{Qr_Is_MeAn1nGfuL}

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

吹着贝斯扫二维码

1.题目概述

image-20220128222106705

image-20220128222213170

2.解题过程

打开flag.zip看看

是个加密的zip,在注释里有一串貌似是base32的编码,可能是密码

image-20220128222401747

去解解看

image-20220128222900300

不过好像解不出来,那先放一放,回去看看那些不明文件,

010打开一个看看

头是jpg,尾巴多了一点东西

image-20220128223111011

image-20220128223200575

改后缀

那就改改后缀看看能不能打开

image-20220128223320888

可以顺利打开,很明显这是一张二维码的一小部分,可以猜想,把全部的文件后缀都改成jpg,然后再把他们拼起来,不就是一张完整的二维码嘛,说干就干,不过也要借助一下脚本,python真是个好东西

import os

path = 'D://CTF//attachment//1' #文件具体路径,这个1是那堆文件所在的文件夹,不成功时可以改个路径
for i in os.listdir('D://CTF//attachment//1'): #路径最好用绝对路径,不会出错
	#if i == '修改后缀.py':
	#	continue

	#else:
		oldname = os.path.join(path,i)
		newname = os.path.join(path,i+'.jpg')
		os.rename(oldname,newname)

image-20220409092251449

运行完后,该怎么把这36张图片拼到一起呢?这是个问题(你也不知道顺序)

确认顺序

其实,在之前的图010看的时候,在文件尾后面还有一个数字,

image-20220128231200132

猜测这就是顺序,可以验证一下,

找一个3个角的特殊位置的图片,猜测数字可能是1,6,或31(根据图片数量确定位置)

image-20220128231414805

不放心可以再看看另外两个角

image-20220128231736560

image-20220128231904555

这下可以百分百确定了,这个数字就是拼图顺序

命名文件

可以利用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')	#重命名文件

image-20220409092456526

这些90多的,其实是1-9,代码写的不够好,出了点问题,改一下吧

利用ps拼图

拼图步骤如下:

1.新建,调整高度和宽度,我调整为24X24

image-20220409094125527

2.文件->置入嵌入对象,选择图片

image-20220409094229049

3.操作

注意有些地方可能会有一点点重合,

嘿,拼的还不错

image-20220409095429448

扫一下

image-20220409095510486

确认解码顺序

image-20220128225515420

解码

哦,这个应该就是那串编码的解码顺序了!难怪解不出来

base32→16进制→13→85→85→64→85(根据那串编码的格式判断顺序)

这个13不是base家族的,查了一下,是rot13编码

GNATOMJVIQZUKNJXGRCTGNRTGI3EMNZTGNBTKRJWGI2UIMRRGNBDEQZWGI3DKMSFGNCDMRJTII3TMNBQGM4TERRTGEZTOMRXGQYDGOBWGI2DCNBY
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

image-20220128234122574

3.flag

flag{Qr_Is_MeAn1nGfuL}

### 关于NSSCTF与贝斯相关内容 在网络安全竞赛领域,尤其是涉及 **NSSCTF** 的讨论中,“贝斯”可能并非指代传统意义上的音乐术语,而是某种特定的技术、工具或者方法论。以下是对此主题的深入分析: #### NSSCTF概述 NSSCTF 是一种常见的网络安全竞赛形式之一,通常围绕渗透测试、漏洞挖掘以及防御技术展开。这类比赛旨在提升参赛者在网络攻防方面的技能水平[^1]。 #### 可能的“贝斯”含义解析 如果提到 “贝斯”,它或许可以指向以下几个方面: 1. **Bash脚本编程**: Bash作为Linux环境下的重要命令解释器,在自动化攻击检测、日志分析等方面具有广泛应用价值。掌握bash对于参加CTFs非常有帮助。 2. **Basics (基础)**: 这里所谓的“贝斯”也许只是basic(基本功)一词的音译变形, 强调的是扎实的基础知识如操作系统原理、网络协议栈理解等. 3. **Base64编码解码**: 在很多CTF挑战里面都会涉及到base64加密方式的应用场景练习; 学员需学会如何快速识别并处理此类数据转换操作. 4. **Binary Exploitation (二进制利用)**: CTF比赛中经常会出现逆向工程题目,要求选手通过反汇编软件来剖析目标程序的行为逻辑进而找到突破口完成得分任务。这部分内容属于较为高级别的竞技范畴但同样不可或缺. 5. **Burp Suite工具集**: Burp suite是一款功能强大的web应用程序安全性描平台,广泛应用于实际工作当中同时也频繁现身各类模拟演练场合之中成为必备利器之一. ```python import base64 # Example of Base64 encoding and decoding process. original_data = b'HelloWorld' encoded_data = base64.b64encode(original_data) decoded_data = base64.b64decode(encoded_data) print(f"Original Data: {original_data}") print(f"Encoded Data: {encoded_data}") print(f"Decoded Data: {decoded_data}") ``` 上述代码片段展示了简单的Base64编码与解码过程,这是许多初学者入门阶段必学的一项关键技术。 ### 结语 综上所述,“贝斯”的确切意义取决于具体上下文环境,但从整体来看其更多偏向基础知识积累和技术手段运用层面的理解。希望以上解答能够对你有所启发!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值