misc
27262524
拿到一个加密嵌套压缩包,直接爆破

发现密码是272727,做misc多了,直接敏锐察觉接下来的密码就是文件名重复三次了,写一个脚本
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 os
import pyzipper
from queue import Queue
def extract_zip(zip_path, output_dir):
try:
basename = os.path.basename(zip_path)
filename = os.path.splitext(basename)[0]
password = filename * 3 # 密码为文件名重复三次
with pyzipper.AESZipFile(zip_path) as zf:
zf.extractall(path=output_dir, pwd=password.encode('utf-8'))
print(f"[+] 解压成功: {zip_path}")
new_zips = []
for root, _, files in os.walk(output_dir):
for file in files:
if file.endswith(".zip"):
new_zips.append(os.path.join(root, file))
return new_zips
except Exception as e:
print(f"[-] 解压失败: {zip_path}, 错误: {str(e)}")
return []
# 其余代码与原始脚本相同
def main():
initial_zip = r"D:\网安题文件\27.zip" # 初始ZIP路径
output_dir = r"D:\网安题文件" # 输出目录
# 确保输出目录存在
os.makedirs(output_dir, exist_ok=True)
# 使用队列处理所有ZIP文件(广度优先遍历)
processed = set() # 已处理文件集合(避免重复)
queue = Queue()
queue.put(initial_zip)
while not queue.empty():
current_zip = queue.get()
if current_zip in processed:
continue
processed.add(current_zip)
# 解压并获取新生成的ZIP文件
new_zips = extract_zip(current_zip, output_dir)
for zip_file in new_zips:
queue.put(zip_file)
print("[*] 所有ZIP文件已处理完成!")
if __name__ == "__main__":
main()
|
这里我遇到一个坑,一开始我直接解压显示错误,后面banzip解压可以,但是代码解压也不行,后面了解是加密算法有点坑

这个加密算法是AES,而我代码一开始是用Python内置的zipfile
模块,仅支持传统的 ZipCrypto 加密,后面换成 pyzipper模块就欧克。得到图片

foremos提取了一张二维码

直接微信扫码得到flag
NSSCTF{The_competition_has_so_far_held_26_rounds}
补充一句,这里的二维码其实反相了,按道理要用
https://uutool.cn/img-color-reverse/
这个网站恢复,然后再用QR扫,但是微信扫码比较强,直接出。
JOJO
题目给了一张图片,随波一把梭没用

丢进010看看

发现这里把zip文件头50删了,那我们直接加上。然后binwalk分离,得到一个压缩包,里面有一张图片

然后放随波逐流,发现还藏了压缩包,直接binwalk分离。然后发现是个加密压缩包,而且看起来像伪加密,但是其实不是。所以要找密码,爆破爆不出,那就是藏在哪里了。
这张图片放随波逐流时发现crc不对

想到可能宽高不对劲,用模板改一下宽高(快捷键Alt+4)

高改成1800就可以看到密码:DarkWill(有些题可以到字符但是乱码,就要爆破宽了)

解压是txt,里面是一大串字符,那不用想就是套娃

一眼base16编码

解码以后一眼凯撒加密,偏移量慢慢试,不想试可以取前面一小段放到随波梭哈看看偏移量

解密后一样base64转图片(注意去掉前面的world),然后丢随波逐流,发现有zip,然后又分离得到一个压缩包

一眼伪加密,09改成00后打开,flag就在里面

总结:此题套娃,出题人接受拷打,难点:出题人防随波逐流,比如第一个要补全压缩包,要利用模板!第二个难点就是补全图片宽高,需要比较敏感。题目知识点不难,但是很难一下想到,还是要多用模板!下班。
东北jail