2024年“羊城杯”粤港澳大湾区网络安全大赛Misc 部分解析
- 前言:
- 数据安全:
- 不一样的数据库_2:
- Misc - hiden:
- Misc - miaoro:
前言:
本次 解析是后期复现 当时没时间打 用于交流学习,感谢支持!!
[X] 🛰:ly3260344435
[X] 🐧:3260344435
[X] BiliBili:鱼影信息
[X] 公众号:鱼影安全
[X] CSDN:落寞的魚丶
[X] 知识星球:中职-高职-CTF竞赛
[X] 信息安全评估(高职)、中职网络安全、金砖比赛、世界技能大赛省选拔选拔赛、电子取证比赛,CTF培训等
欢迎师傅们交流学习,加我可以拉粉丝群~
数据安全:
不一样的数据库_2:
压缩包里面有图片和kdbx
文件 放入HxD
发现题目密码6
位 尝试爆破!
得到密码:753951
发现破碎的秒表 进行修复 可以PS
也可以网站进行修补,然后扫码即可。
ROT13
解码 得到下面这一串
AES@JDHXGD12345&JJJS@JJJSK#JJDKAJKAH
打过DC
靶机小伙伴应该知道kdbx
这个东西, 是数据库文件 通关网站分析一下
https://app.keeweb.info/
通过记录发现 这里是链接到了一个工具的下载地址KeePass
这个工具
U2FsdGVkX193h7iNsZs3RsLxH+V1zztkdS+fBy2ZQfzH77Uo4l3hSWplMV+GcLpAGflXlQuPTU5qIkOY7xJN9A==
密钥为:DASCTF
直接AES
解码即可。
在线AES
解密:http://www.esjson.com/aesEncrypt.html
DASCTF{snsnndjahenanheanjjskk12235}
Misc - hiden:
打开发现一个音频文件一个txt
看到音频可以想到隐写,但是放入Audacity
无果 再来看txt
这里很有意思哈 60!! rot47+rot13
刚好等于60
解密看看源码!
## 解密源码
import wave
with open('flag.txt', 'rb') as f: #打开flag文件
txt_data = f.read() #并以二进制模式读取其内容到变量txt_data
file_len = len(txt_data) ## 获取txt_data的长度
txt_data = file_len.to_bytes(3, byteorder = 'little') + txt_data
##并将其转换为3字节的字节串 添加到txt_data的开头
with wave.open("test.wav", "rb") as f: ##使用wave模块打开名为test.wav的WAV文件
attrib = f.getparams() ##通过getparams()方法获取WAV文件的参数(如声道数、采样宽度等)并存储在attrib变量中
wav_data = bytearray( f.readframes(-1) ) ##将WAV文件的所有帧读取到一个可变的字节数组wav_data中
for index in range(len(txt_data)): ##遍历txt_data中的每个字节,每个字节被插入到wav_data的对应位置
wav_data[index * 4] = txt_data[index]
with wave.open("hiden.wav", "wb") as f: ##创建一个新的WAV文件hiden.wav
f.setparams(attrib) ##设置新WAV文件的参数与原WAV文件相同,写入修改后的wav_data到新文件中
f.writeframes(wav_data)
import wave
# 打开含有隐藏数据的Wave文件
with wave.open("hiden.wav", "rb") as wf:
# 获取音频文件的参数
params = wf.getparams()
# 读取音频文件的所有帧数据
wav_data = bytearray(wf.readframes(-1))
# 初始化一个空字节列表来存储提取出的文本数据
extracted_data = []
# 由于原始代码中每四个字节的第一个字节被用于存储文本文件的一个字节
# 我们只需提取这些字节即可
for index in range(0, len(wav_data), 4):
extracted_data.append(wav_data[index])
# 将提取出的字节流转换为字节对象
txt_data = bytes(extracted_data)
# 提取文件长度
file_len = int.from_bytes(txt_data[:3], byteorder='little')
# 去除文件长度标识符
txt_data = txt_data[3:]
# 根据文件长度截断数据
txt_data = txt_data[:file_len]
# 将提取出的数据写入新的文本文件
with open("recovered_flag.txt", "wb") as f:
f.write(txt_data)
print("Data extraction completed. The recovered text file is saved as 'recovered_flag.txt'.")
DASCTF{12jkl-456m78-90n1234}
Misc - miaoro:
被攻击的流量是shiro
流量 在第7
条发现 nekoMiao
解密 找到前半段 flag
解密网站:https://potato.gold/navbar/tool/shiro/ShiroTool.html
打开数据包 筛选HTTP
数据流 找到第13
条 发现Base64
解密
但是是一个倒叙的压缩包所以需要逆向一下
导出压缩包 还需要 找到压缩包密码 :Th15_11111111s_pP@sssssw000rd!!!
解压完成 得到一张图片 修改高度 得到小猫图片!
最后抖音和贴吧找到了 相关对照图 然后解密 最后拼接前半段
DASCTF{B916CFEB-C40F-45D6-A7BC-EBOFDELQDIAA}