# 安洵杯 2023 Misc

# dacong の Windows

题目描述是:好像什么重要的表被修改了,猜测是注册表文件被修改

刚开始利用 vol2 进行查看 imageinfo 的信息,发现镜像文件为 win10,于是就改用了 vol3,避免出现一些问题

# flag3:

首先按照老套路扫描一下文件,直接 grep 出关键字符串 flag

1
python3 ./vol.py -f dacong.raw windows.filescan | grep flag

发现了桌面上的 flag3.txt 文件

dump 下来进行查看

1
python3 ./vol.py -f ../../dacong.raw windows.dumpfiles --virtaddr="0xe0007a09d470"

得到:

1
U2FsdGVkX18M+E34cKJlmTU3uo1lHqjUQhKPTBGJiMjg4RWX6saTjOJmLU86538e

发现还套了一层加密,看上去像是 aes,需要寻找 key,而这里的 key 就在题目所提示的注册表当中

用命令列出注册表的所有键值

1
python3 ./vol.py -f ../../dacong.raw windows.registry.printkey

能发现一个类似 key 的字符串,拿去解密一下试试

直接用 puzzle 爆破出来了 flag3:dAc0Ng_SIst3Rs????}

# flag2:

利用取证大师对文件进行深度恢复之后再次进行自动取证

发现回收站删除的文件中有个 secret.rar 文件,进行导出并解压

全选之后根据文本内容提示猜测为 snow 隐写

无密码

1
.\SNOW.EXE -C flag2.txt

得到 flag2:_tHE_Dddd

# flag1:

利用 R-studio 扫描文件,在 miku 的桌面上发现了很多的 dacong.wav

直接恢复出来发现音频都有些问题,包括之前的 secret.rar 文件用 R-studio 恢复出来也是损坏的,这里可以使用 vol3 进行 dump

一个个听一下发现 dacong39.wav 是 sstv,用 rxsstv 进行识别得到 flag1

flag1:flag{Ar3_Th3Y

拼接得到完整 flag

flag{Ar3_Th3Y_tHE_DddddAc0Ng_SIst3Rs????}

# 疯狂的麦克斯

拿到三个文件,首先看到了 FLAG.zip,根据题目描述应该是最后的 flag 文件,先看看无后缀的麦克斯的称号

记事本打开发现存在一些不可见的字符

猜测零宽,解密得到称号 mks007

接着嗨.zip 文件解压出来 word 文件,修改后缀为 zip 之后发现了 MKS
IM 麦克斯.txt 文件

打开发现是字符表,文本末尾还有一串字符串

经过尝试得知是凯撒移位

根据后来修改的题目描述可以知道压缩包密码是某个值的 base64,文本末尾算是个凯撒的提示吧,把整个字符表进行凯撒位移

利用脚本将列表中的每个值进行 base64 加密并对压缩包进行爆破

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import base64

import zipfile



zip_file_path = 'your_zip_file.zip'



values = ['71132E', '328051N', '248199O', '96369v', '216076R',...] #替换成完整列表



def encode_base64_and_crack_zip(values, zip_file_path):

passwords = {}



for value in values:

encoded_value = base64.b64encode(value.encode()).decode()



try:

with zipfile.ZipFile(zip_file_path, 'r') as zip_file:

zip_file.extractall(pwd=encoded_value.encode())

passwords[encoded_value] = value

print(f"Correct password found: {encoded_value} for value: {value}")

except Exception as e:

pass



return passwords



passwords_dict = encode_base64_and_crack_zip(values, zip_file_path)



print("\nPasswords and corresponding base64 values:")

for password, value in passwords_dict.items():

print(f"Password: {password} -> Value: {value}")

输出:

1
2
3
4
5
6
7
Correct password found: NDU2Nzg4UA== for value: 456788P



Passwords and corresponding base64 values:

Password: NDU2Nzg4UA== -> Value: 456788P

得到密码:NDU2Nzg4UA==

解压得到 flag

D0g3{Th1s_REA11Y_MAX_F1A4_GGB0ND}

# Nahida

在 hi.txt 中没有发现什么隐写信息,查看无后缀文件

发现是 jpg 文件的翻转文件,利用脚本逆回来

1
2
3
4
5
6
7
8
9
with open('1.txt','r') as f: #1.txt中存放原文件的16进制数据

x = f.read()

s = x[::-1]

with open('1.jpg','wb') as f:

f.write(bytes.fromhex(s))

得到:

重新放入 winhex 查看发现末尾多了些乱码

重新将 16 进制提取出来进行解码

提示早已出现在你的旅途,和神之眼,猜测是 silenteye

密码为文件的名称 Nahida,decode 得到 flag

d0g3{Nahida_is_the_best_in_the_world!}

# dacong の secret

得到两个附件

png FFT 得到压缩包密码:d@C0ng 1s cUt3!!!

winhex 查看解压出来的 jpg 发现图片末尾存放着压缩包的 16 进制数据

同样 reverse 之后写入到文件当中,根据题目描述可知,这一层的压缩包密码也在 png 当中

binalk 图片时发现图片中有多余的数据块,tweak 查看下 idat 块

发现最后的 idat 块存在异常,单独提取出来

补上 dacong1hao.png 的文件头

利用 puzzle 对该图片进行 fix,得到解压密码

一眼 base64 隐写

解码得到:

pass {m1ku_1s_sha_fufu123},依然是个 pass,jpg 的 jphide 隐写

解密得到 flag

flag{d@C0ng_1s_r3@lIy_Re@iLY_Cute}

小结:这次比赛 misc 知识点难度倒是不大,但是很套,需要猜的知识点和步骤也比较多