题目环境只保留了四个小时,wp也没出,没来得及复现,其他题也复现不了了,只能看看其他师傅的wp学习学习。

Misc

原神启动

解题思路:

下载附件得到两个文件,发现压缩文件解压需要密码,先看看png图片,放到stegsolve里面看看。

emm假flag,那应该就是解压密码,flag格式的密码真的难绷,解压得到一个docx文件,打开滚到35页好像发现flag,看不清,拿到stegsolve看看。

还是假的,把这个docx文件以zip打开,发现目录下还有一个img.zip,里面有个text.zip,需要解压密码,把刚得到的假flag拿去解压发现密码不对,看看目录下其他文件,最终在word文件夹里的document.xml,找到解压密码。

再拿去解压得到flag。

原神套娃,真的唐。

Crypto (这题当时AI一把梭秒了)

Easy

解题思路:

下载附件解压得到两个文件,密文,加密算法和key都给了,当时比赛就直接丢给通义给了个脚本秒了。

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

import base64

encoded_str = "MkpIbmdFcWs4MzVjR3BHRXFVVnZtZWJUQWtSTlNNamE1dGZYQTdwR25ac203SnJQV2FyTUdHQnA3Uk1XZDNZVFlTNTJjemVya1BCN0dBY2NBNkN4U1VBS29TalVBOU1tR1EyYUF0UVlHZTFYOXp1TThWS2o1OHdKRFJaVXhzTGRaZUpaTGV6NUFWc2JHdm5CbTdjV28yNTRyWGpzQURYdEhkSmJmWmtGREVEQWZWeEhFeDNYanNNODZMZVo2cnM2NExGbU5QeG1mUXBqQ3BoY3pCczlRa3kySnFZb1JzSnFtUnk0cW02WFgyOU50N1g2Vg=="
decoded_bytes = base64.b64decode(encoded_str)
decoded_str = decoded_bytes.decode('utf-8')
print(decoded_str)

def rc4(key, data):
S = list(range(256))
T = [ord(key[i % len(key)]) for i in range(256)]

# 密钥调度算法 (KSA)
j = 0
for i in range(256):
j = (j + S[i] + T[i]) % 256
S[i], S[j] = S[j], S[i]

# 伪随机生成算法 (PRGA)
i = j = 0
result = []
for m in range(len(data)):
i = (i + 1) % 256
j = (j + S[i]) % 256
S[i], S[j] = S[j], S[i]
x = (S[i] + S[j]) % 256
result.append(data[m] ^ S[x])

return bytes(result)

# 已知密钥
key = "hello world"

# 十六进制的 flag
hex_flag = "d8d2963e0d8ab8533d2a7fe296c5292339246eba0d292d5752578359322c3a77892dfa7261b84f"

# 将十六进制字符串转换为字节
data = bytes.fromhex(hex_flag)

# 解密 flag
decrypted_flag = rc4(key, data)
print("Decrypted Flag:", decrypted_flag.decode('utf-8'))

赛后看了其他师傅的wp,想试一下用赛博厨子(还没用过不会用),结果出来乱码。。。。

Web

sign

解题思路:

当时密码和misc的签到都做出来了,偏偏web的不出,一个web手轻轻地碎了。

访问题目页面就给了passwd:sgin,看题目描述考虑post传参passwd=sgin,然后就。。。。失败了,然后盯着看了好久还是没思路,放弃了。后面题目放了hint,真的很简单,蚁剑连一下就行了,密码就是sign,flag就在根目录下。