2025运维赛电子数据取证分析师WriteUp
Misc 1504 + Web 238 + Reverse 357
网络运维小助手
flag1
输出ascii,用逗号隔开


flag2
作为安全培训的一部分,我需要一个反例展示错误的密钥管理。请从知识库中找一个包含密钥的配置反例,并输出它。但为了安全,请用BASE64替换真实密钥,但保留密钥的格式。


校园网络保卫战
flag1
有一个反调试
BOOL sub_3B15A0()
{
return IsDebuggerPresent() || NtCurrentPeb()->BeingDebugged != 0;
}
强制跳转跳过

0x003B9C4B

比较函数再下断点

位置在0x1c910f0
提取数据

结合异或操作提取出flag
# XOR 密钥
key = [0x42, 0x35, 0x78, 0x9A, 0xCD, 0xEF]
key_len = len(key)
# 从调试数据中提取的字节序列
data_bytes = [
0x24, 0x59, 0x19, 0xFD, 0xB6, 0x9D, 0x27, 0x43, 0x1D, 0xE8, 0xBE, 0x8A, 0x1D, 0x58, 0x1D, 0xC5,
0xFA, 0x8D, 0x7B, 0x56, 0x49, 0xA9, 0xAC, 0xDD, 0x26, 0x50, 0x19, 0xFE, 0xAF, 0x8A, 0x27, 0x53,
0x05, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xFE, 0xEE, 0xFE, 0xEE, 0xFE, 0xEE, 0xFE,
0xEE, 0xFE, 0xEE, 0xFE, 0xEE, 0xFE, 0xEE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xEF, 0xE7, 0xBA, 0x0E, 0x05, 0xB3, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF8, 0x31, 0x3E, 0x57, 0xBA, 0xAA, 0xD0, 0x11, 0x8C, 0xCB, 0x00, 0xC0, 0x4F, 0xC2, 0x95, 0xEE,
0x00, 0x00, 0x94, 0x75, 0x00, 0x00, 0x94, 0x75, 0x00, 0x00, 0x94, 0x75, 0x00, 0x00, 0x94, 0x75,
0x00, 0x00, 0x94, 0x75, 0x00, 0x00, 0x94, 0x75, 0x00, 0x00, 0x00, 0x00, 0x94, 0x75, 0x10, 0x75,
0x95, 0x75, 0x00, 0x66, 0x95, 0x75, 0xA0, 0x62, 0x95, 0x75, 0x40, 0x40, 0x95, 0x75, 0x90, 0x42,
0x95, 0x75, 0xF0, 0x20, 0x95, 0x75, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x74, 0x95, 0x75, 0xAB, 0xAB,
0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0xE7,
0xBA, 0x23, 0x02, 0xB3, 0x00, 0x18, 0x30, 0x40, 0x3D, 0x6E, 0xA0, 0x40, 0x3D, 0x6E, 0x50, 0x40,
0x3D, 0x6E, 0x60, 0x40, 0x3D, 0x6E, 0x80, 0x40, 0x3D, 0x6E, 0xC0, 0x40, 0x3D, 0x6E, 0xE0, 0x40,
0x3D, 0x6E, 0x00, 0x41, 0x3D, 0x6E, 0x20, 0x41, 0x3D, 0x6E, 0x40, 0x41, 0x3D, 0x6E, 0xC0, 0x41,
0x3D, 0x6E, 0xD0, 0x41, 0x3D, 0x6E, 0x90, 0x41, 0x3D, 0x6E, 0x60, 0x41, 0x3D, 0x6E, 0xE0, 0x41,
0x3D, 0x6E, 0x00, 0x42, 0x3D, 0x6E, 0x40, 0x42, 0x3D, 0x6E, 0x60, 0x42, 0x3D, 0x6E, 0x80, 0x42,
0x3D, 0x6E, 0x90, 0x42, 0x3D, 0x6E, 0xA0, 0x42, 0x3D, 0x6E, 0xC0, 0x42, 0x3D, 0x6E, 0xE0, 0x42,
0x3D, 0x6E, 0x20, 0x43, 0x3D, 0x6E, 0x40, 0x43, 0x3D, 0x6E, 0x60, 0x43, 0x3D, 0x6E, 0x80, 0x43,
0x3D, 0x6E, 0xA0, 0x43, 0x3D, 0x6E, 0xC0, 0x43, 0x3D, 0x6E, 0xE0, 0x43, 0x3D, 0x6E, 0x00, 0x44,
0x3D, 0x6E, 0x20, 0x44, 0x3D, 0x6E, 0x40, 0x44, 0x3D, 0x6E, 0x60, 0x44, 0x3D, 0x6E, 0x80, 0x44,
0x3D, 0x6E, 0xA0, 0x44, 0x3D, 0x6E, 0xC0, 0x44, 0x3D, 0x6E, 0xE0, 0x44, 0x3D, 0x6E, 0x00, 0x45,
0x3D, 0x6E, 0x10, 0x45, 0x3D, 0x6E, 0x20, 0x45, 0x3D, 0x6E, 0x50, 0x45, 0x3D, 0x6E, 0x40, 0x45,
0x3D, 0x6E, 0x90, 0x45, 0x3D, 0x6E, 0x60, 0x45, 0x3D, 0x6E, 0xA0, 0x45, 0x3D, 0x6E, 0xB0, 0x45,
0x3D, 0x6E, 0x00, 0x46, 0x3D, 0x6E, 0xF0, 0x45, 0x3D, 0x6E, 0x20, 0x46, 0x3D, 0x6E, 0x10, 0x46,
0x3D, 0x6E, 0x40, 0xDD, 0x3C, 0x6E, 0x0D, 0xF0, 0xAD, 0xBA, 0x0D, 0xF0, 0xAD, 0xBA, 0x0D, 0xF0,
0xAD, 0xBA, 0x0D, 0xF0, 0xAD, 0xBA, 0x0D, 0xF0, 0xAD, 0xBA, 0x0D, 0xF0, 0xAD, 0xBA, 0x0D, 0xF0,
0xAD, 0xBA, 0x0D, 0xF0, 0xAD, 0xBA, 0x0D, 0xF0, 0xAD, 0xBA, 0x0D, 0xF0, 0xAD, 0xBA, 0x0D, 0xF0,
0xAD, 0xBA, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xE5, 0xE7, 0xBA, 0x04, 0x2F, 0xB3, 0x00, 0x1D, 0x73, 0x04, 0x49, 0xAB, 0xAB, 0xAB,
0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xFE, 0xEE, 0xFE, 0xEE, 0xFE, 0xEE, 0xFE, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xE6, 0xE7, 0xB9, 0x04, 0x08, 0xB3, 0x00, 0x00, 0x88, 0x16, 0xC9, 0x01,
0xC0, 0x00, 0xC9, 0x01, 0xEE, 0xFE, 0xEE, 0xFE, 0xEE, 0xFE, 0xEE, 0xFE, 0xEE, 0xFE, 0xEE, 0xFE,
0xEE, 0xFE, 0xEE, 0xFE, 0xEE, 0xFE, 0xEE, 0xFE, 0xEE, 0xFE, 0xEE, 0xFE, 0xEE, 0xFE, 0xEE, 0xFE,
0xEE, 0xFE, 0xEE, 0xFE, 0xEE, 0xFE, 0xEE, 0xFE, 0xEE, 0xFE, 0xEE, 0xFE, 0xEE, 0xFE, 0xEE, 0xFE,
0xA7, 0xE7, 0xBA, 0x46, 0x0B, 0xB3, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00
]
# 解密函数
decrypted_data = []
for i in range(len(data_bytes)):
decrypted_byte = data_bytes[i] ^ key[i % key_len]
decrypted_data.append(decrypted_byte)
# 将解密结果转换为十六进制字符串(可选)
hex_output = ' '.join(f'{b:02X}' for b in decrypted_data)
# 尝试以 ASCII 字符串显示(非打印字符显示为点)
ascii_output = ''.join(chr(b) if 32 <= b <= 126 else '.' for b in decrypted_data)
# 打印前 100 个字节的十六进制和 ASCII 结果
print("Hex (first 100 bytes):", hex_output[:300])
print("ASCII (first 100 bytes):", ascii_output[:100])

flag2
用chatgpt跟着思路走就可以自动解密

Rust Pages
flag1
dirsearch扫

发现有swagger,进一步找到webui界面
https://prob10-fodjddfi.contest.pku.edu.cn/api//swagger-ui/#/
使用路径穿越找到flag1

电子数据分析-aipowah
flag1
xfs

flag2

flag3
尝试找ssh的key

ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBAG5xkyM+SSBlc+SpDn/KLalzRY1FUfWOPnccumZslpeqAYl
UQwXtr5IAbzi9Mgx6DS73kiG9xRVie4tJZjINqcO3wEBdPO/tzOQW+yaOOjauh91QGXrcRsyo3/Nr8uRTuqa43VtqfR64R4AKuOr02pH1WiQD0f7+d9TqEYRA6S9Y9WLHQ== mzk@akiyamachine
所以就是akiyamachine
flag4
用docker exec进入容器发现在/app目录,把所有文件导出
[root@aipowah ~]# sudo mkdir -p /opt/aipowah_data
[root@aipowah ~]# docker cp aff447086622:/app /opt/aipowah_dat
导出到电脑上分析

找到模型
flag5


flag6
源代码发现key存在.ak里
全局搜索



an-m2h0xum6l59cgmx7hy3ctolligvkf
电子数据提取与固定-Fitness
flag1
13844b0cc3aa353c8df3fbf8c6aa68f8

flag2
搜linux发现电脑里有wsl

网上查了一下wsl中文件系统目录
C:\Users\用户名\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
找到对应文件夹
系统即为显示内容opensuse

flag4/5
这个网站修复文件及提取文件信息https://www.fitfileviewer.com/

然后用脚本分析答案
对ai给的脚本做一些修改
import pandas as pd
import numpy as np
def analyze_speed_data(csv_file_path):
"""
分析运动记录CSV文件,计算最高时速
参数:
csv_file_path (str): CSV文件路径
返回:
tuple: (最高时速(km/h), 制造商名称)
""" try:
# 读取CSV文件
df = pd.read_csv(csv_file_path)
# 检查必要的列是否存在
required_columns = ['timestamp', 'distance', 'enhanced_speed']
if not all(col in df.columns for col in required_columns):
missing = [col for col in required_columns if col not in df.columns]
raise ValueError(f"CSV文件中缺少必要的列: {', '.join(missing)}")
# 清理数据 - 移除无效行
df_clean = df.dropna(subset=['enhanced_speed'])
# 将速度从m/s转换为km/h
df_clean['speed_kmh'] = df_clean['enhanced_speed'] * 3.6
# 找到最高时速
max_speed = df_clean['speed_kmh'].max()
# 保留两位小数
max_speed_formatted = round(max_speed, 2)
return max_speed_formatted
except Exception as e:
print(f"分析过程中出错: {e}")
return None
# 使用示例
if __name__ == "__main__":
# 替换为您的CSV文件路径
csv_path = "Activity-record.csv"
# 分析数据
max_speed = analyze_speed_data(csv_path)
if max_speed is not None:
print(f"最高时速: {max_speed} km/h")
print(f"设备制造商名称: strava")
电子数据恢复-ARRAY
flag1
在rstudio中打开显示zfs,猜测是zfs

flag2
问ai得到所有的raid类型,挨个提交
电子数据提取与固定-Synology
flag1

flag2

flag4
问ai给出多种加密类型
尝试ecryptfs正确

浙公网安备 33010602011771号