2024年“羊城杯”粤港澳大湾区网络安全大赛 MISC部分
Author:Ns100kUp
From:极安云科-服务中心
Data:2024/08/27
Copyright:本内容版权归属极安云科,未经授权不得以任何形式复制、转载、摘编和使用。
培训、环境、资料、考证
公众号:Geek极安云科
网络安全群:624032112
网络系统管理群:223627079
网络建设与运维群:870959784
极安云科专注于技能提升,赋能
2024年广东省高校的技能提升,受赋能的客户院校均获奖!
2024年江苏省赛一二等奖前13名中,我们赋能客户占五支队伍!
2024年湖南省赛赋能三所院校均获奖!
2024年山东省赛赋能两所院校均获奖!
2024年湖北省赛赋能参赛院校九支队伍,共计斩获一等奖2项、三等奖7项!
1.hiden
some thing hiden in the wav
据题意,该文件为音频隐写,binwalk显示存在mysql索引文件,但是一直分离不出,其实是误报,被误导了好久浪费了很长时间
import wave
with wave.open("hiden.wav", "rb") as f:
attrib = f.getparams()
wav_data = bytearray(f.readframes(-1))
txt_data = bytearray()
for index in range(0, len(wav_data), 4): #从 wav_data 中每四个字节取第一个字节,存储在 txt_data 中
txt_data.append(wav_data[index])
file_len = int.from_bytes(txt_data[:3], byteorder='little') #前三个字节被解析为隐藏文本的长度
original_txt_data = txt_data[3:]
with open('recovered_flag.txt', 'wb') as f:
f.write(original_txt_data)
print(f"Original file length: {file_len}")
print(f"Recovered data: {original_txt_data.decode('latin-1')}")
2.不一样的数据库_2
嗨兄弟,不要忘了注意一下名字哦
附件名称为:6 (1).zip
由题意得出灵感6位数字爆破zip,果然成功,解压后是一张缺失定位角的二维码 13.png+Kee.kdbx,该后缀为一款密码记录软件,猜测flag肯定在里面
先完成简单的,补全定位角后扫码得到字符串NRF@WQUKTQ12345&WWWF@WWWFX#WWQXNWXNU
rot13解出AES@JDHXGD12345&JJJS@JJJSK#JJDKAJKAH
导入KeePass软件后需要密码,尝试填入rot13解出的秘钥发现正确,果然发现了留下的记录,并且标题为passisDASCTF
点进去后在历史这里发现了历史版本,其中前两个版本的高级里面存在aes加密,猜测前面的标题为线索
中途遇到一个坑,换了两个解密软件都不行,都说AES秘钥需要128字节,浪费了半小时,由于前一天hvv通宵了,至此已经30个小时没有休息了,坐着睡着了两分钟,醒来马上开窍(垂死梦中惊坐起),换上我最常用的在线解密网站,KYE=DASCTF,直接解出flag
3.so much
咦,为什么这个磁盘文件打不开,里面究竟有什么秘密?
题目附件:c2hpZnQh.ad1
根据题意可知为磁盘的杂项,且附件后缀为ad1,基本就是用FTK没跑了
winhex打开发现底部有提示,FTK打开该复现发现需要密码,1324567不对,试了下按shift输入!@#$%^&发现可以载入,里面很多文件
导出后发现时间很规律,于是考虑二进制解法,20分为1,19分为0,写脚本得到key
import os
from datetime import datetime
# 初始化输出字符串
output_string = ""
# 遍历文件0.crypto到343.crypto
for i in range(344):
filename = f"{i}.crypto"
# 检查文件是否存在
if os.path.exists(filename):
# 获取文件的最后修改时间
mod_time = os.path.getmtime(filename)
# 将时间戳转换为datetime对象
dt = datetime.fromtimestamp(mod_time)
# 提取分钟数
minute = dt.minute
# 检查分钟是否为16:19 (1) 或 16:20 (0)
if minute == 19:
output_string += "1"
elif minute == 20:
output_string += "0"
# 输出最终结果
print(output_string)
1110100 1101000 1100101 1011111 1101011 1100101 1111001 1011111 1101001 1110011 1011111 110111 110000 110000 110010 110010 111001 1100011 110000 110101 110011 1100010 110100 1100101 1100010 1100010 1100011 1100110 110001 1100001 110011 1100011 1100011 110011 110111 1100011 110011 111000 111001 1100011 110100 1100110 1100001
.crypto这个后缀是由Encrypto for Win这款软件加密生成的,所以我们下载该软件,使用上面得到的key解出0和1的加密文件得到两个文本,拼接为flag