buuctf misc zip

解压缩发现每个包都很小

124.PNG

其中对应的ascii码的值可以穷举,就把他全部穷举然后算一下crc32码

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
#python3
import zipfile
import string
import binascii

def CrackCrc(crc):
for i in dic:
for j in dic:
for k in dic:
for h in dic:
s = i + j + k + h
if crc == (binascii.crc32(s.encode())):
f.write(s)
return

def CrackZip():
for i in range(0,68):
file = 'out'+str(i)+'.zip'
crc = zipfile.ZipFile(file,'r').getinfo('data.txt').CRC
CrackCrc(crc)
print('\r'+"loading:{:%}".format(float((i+1)/68)),end='')

dic = string.ascii_letters + string.digits + '+/='
f = open('1.txt','w')
print("\nCRC32begin")
CrackZip()
print("CRC32finished")
f.close()

脚本给全部爆破出来然后把每个压缩包的内容存入1.txt 内容是base64码
解码一下发现以rar文件为结尾

125.PNG

将这解码内容写入一个新的文件

1
2
3
4
5
import base64

base64_text = open('1.txt','r').read()
byte_stream = base64.b64decode(base64_text)
open('xin.txt','wb').write(byte_stream)
1
010 添加一个rar的文件头52 61 72 21 1A 07 00

打开在注释那边找到flag

126.PNG

RoarCTF2019黄金6年
这五年你知道我是怎么过的吗?(;′⌒`) 最后就剩活着了
首先是视频丢010末尾有一段base64复制下来解码提示是rar文件

131.PNG

用上面的代码导出然后解压缩 欸不好意思有密码
那就只能从视频里面找内容了 (讨厌这种视频题,找得眼睛快瞎了)
四张二维码 key1:i key2:want key3:play key4:ctf

127.PNG

128.PNG

129.PNG

130.PNG

解压缩包即可