前言:本文章同步csdn具体详情 可以查看~附件在后台
shiro
流量 在第7
条nekoMiao
解密 找到前半段 flag
#解密网站:https://potato.gold/navbar/tool/shiro/ShiroTool.html
HTTP
数据流 第13
条 发现Base64
解密 Th15_11111111s_pP@sssssw000rd!!
ZWNobyBUaDE1XzExMTExMTExc19wUEBzc3Nzc3cwMDByZCEhIT5wYXNzLnR4dA==
DASCTF{B916CFEB-C40F-45D6-A7BC-EBOFDELQDIAA}
c2hpZnQh.ad1
文件 是磁盘类型 FTK
挂载提取文件名提示Base64
解码shift!
密码:!@#$%^&
通过010editor
看到文件结尾 所以密码其实1234567
是所对应的 !@#$%^&
通过大概分析可以看出来时间为19
和20
可以看成二进制0
和1
import os
# 初始化一个长度为344的列表,用于存储文件的修改时间
file_mod_times = [''] * 344
# 获取文件的修改时间并存储在列表中
for j in range(344):
try:
file_name = f"{j}.crypto"
# 获取文件的修改时间
file_mod_times[j] = os.path.getmtime(file_name)
except FileNotFoundError:
print(f"File {file_name} not found. Exiting.")
exit(1)
# 初始化一个空字符串,用于存储二进制表示
binary_string = ''
# 检查文件的修改时间,并转换为二进制字符串
target_timestamp = '1628151585.73009'
for mod_time in file_mod_times:
if str(mod_time) == target_timestamp:
binary_string += '0'
else:
binary_string += '1'
# 将二进制字符串转换为ASCII字符
decoded_string = ''
temp = ''
for bit in binary_string:
temp += bit
if len(temp) == 8:
# 将8位二进制字符串转换为字符并添加到结果字符串中
decoded_string += chr(int(temp, 2))
temp = ''
# 打印解码后的字符串
print("Decoded string:", decoded_string)
key
:700229c053b4ebbcf1a3cc37c389c4fa
0.crypto
和1.crypto
解密Encrypto for Win
打开DASCTF{85235bd803c2a0662b771
396bce9968f}
音频文件放入Audacity
无果 再来看txt
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'.")
压缩包里面有图片和kdbx
文件
放入HxD
发现题目密码6
位 尝试爆破!
得到密码:753951
得到残缺二维码然后进行修补
NRF@WQUKTQ12345&WWWF@WWWFX#WWQXNWXNU
rot13解密 得到:提示是AES可能是密码
AES@JDHXGD12345&JJJS@JJJSK#JJDKAJKAH
U2FsdGVkX193h7iNsZs3RsLxH+V1zztkdS+fBy2ZQfzH77Uo4l3hSWplMV+GcLpA
GflXlQuPTU5qIkOY7xJN9A==
DASCTF{snsnndjahenanheanjjskk12235}
点分享
点收藏
点在看
原文始发于微信公众号(鱼影安全):2024年“羊城杯”粤港澳大湾区网络安全大赛Misc 部分解析
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论