這道題有點煩,拿出來單獨寫
先貼兩張圖,一會用
首先這題給了68個壓縮包,
每個壓縮包里只有4bytes大小,於是可以想到是crc爆破,自己寫的腳本總是被killed,犯懶找了個腳本
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) dic = string.ascii_letters + string.digits + '+/=' f = open('out.txt','w') CrackZip() print("CRC32碰撞完成") f.close
然后得到了一串base64編碼,解碼為十六進制
於是前面的圖派上用場了,看到CF 90 73我們知道這是一個殘缺的rar,補上52 61 72 21 1A 07 00 保存后解壓,得到
這就很皮了,好不容易搞到flag.txt結果就給我看這個,
於是看第二張圖,在文件頭crc和位標記之間有一個74,這一位是固定的,但我們現在是7A
將7A改為74,解壓
這個CMT里就是真正的flag了