2024年"网鼎杯"朱雀组Misc-wp全解

Misc01

data文件

差分曼彻斯特算法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from libnum import *

# 读取文件内容
with open("data", "r", encoding="utf-8") as f:
all_str = f.read()

# 计算输出字符串
out = []
n = (len(all_str) // 2) - 1

# 使用列表推导式构建输出
for i in range(n):
out.append('0' if all_str[i*2:i*2+2] == all_str[i*2+2:i*2+4] else '1')

# 将列表转换为字符串并转换为十六进制
hex_output = hex(int(''.join(out), 2))[2:]

# 将结果写入文件
with open("tmp.txt", "w") as f:
f.write(hex_output)

压缩包文件 去掉开头的 100000015

发现zip文件中夹杂多余字节,secret.png被分开,间隔为6个字节,估计是多余了6个字节。至于每取出多少字节后去除尾部6个字节,可以爆破。

因为头部504B03041400没有问题,从504B0304到42020015,长度44,可以从12爆破至44。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 读取 ZIP 文件
with open("2.zip", "rb") as f:
all_b = f.read()

n = len(all_b)

# 遍历不同的分段大小
for j in range(12, 45):
out = bytearray() # 使用 bytearray 来构建输出
for i in range(0, n, j):
out.extend(all_b[i:i + (j - 6)]) # 使用 extend 方法追加数据

# 写入输出文件
with open(f"out_{j}.zip", "wb") as f:
f.write(out)

多次尝试发现每22个字节去除6个多余字节,可以恢复正常文件

1
12345678

1
cHBhYXNzd2Q=

1
ppaasswd

1
[文字隐写术 - PixelJihad](https://tool.zootu.cn/tools/fun/pixels/)
1
wdflag{f3b32f2151a877cad089c25994e5da4a}

Misc02

反编译jar包

找到AbstractHashMap

查看主代码

aes加密, key为

1
Y4SuperSecretKey

再找到加密后的flag

Li1Li1IlLlll

拿到加密后的数据

1
rCHPM64CJdSUR3ohx2EFokSG/hP11J/yor89iDiwUGhh90tCYXN826R21eMOmFllJz5Lze1tamIcBddqX2svPAmutJk0unniQXXhvV6uFxI=

尝试这段解密得到flag

1
wdflag{499c1ad9-f66f-4fa0-a6ce-b3aa46f8d598}

Misc03

使用kali foremost分离文件

得到的文件都是加密的。但是压缩包中的三个文本文件都是6字节大小,

尝试一下CRC32爆破

选择三段比较合理的字符合并得到

1
This_WD_010cryptPw

这就是压缩包的密码

解压文件

得到文档,根据文档名很容易就能猜到是verycrypt加密卷

挂载一下密码为

1
This_WD_010cryptPw

得到key文件

rsa加密

想到还有一个flag.txt

rsa解密一下

得到flag

1
wdflag{31d2e6acab070be105c1a9bbf28d2209}

2024年"网鼎杯"朱雀组Misc-wp全解
http://52yang.top/2024/11/05/2024-Wdb-zqz-misc/
作者
Ch1p3
发布于
2024年11月5日
许可协议