excuse me???68个压缩包
而且每个里面都有一个名为data的txt文件。那么我们需要写脚本解压。(根据CRC碰撞原理)(代码是借鉴自网上大神的,我一个python小白没写出来…)
#coding:utf-8
import zipfile
import string
import binascii
def CrackCrc(crc):
for i in dic:
for j in dic:
for p in dic:
for q in dic:
s = i + j + p + q
if crc == (binascii.crc32(s) & 0xffffffff):
f.write(s)
return
def CrackZip():
for I in range(68):
file = 'out' + str(I) + '.zip'
f = zipfile.ZipFile(file, 'r')
GetCrc = f.getinfo('data.txt')
crc = GetCrc.CRC
CrackCrc(crc)
dic = string.ascii_letters + string.digits + '+/='
f = open('out.txt', 'w')
CrackZip()
f.close()
这个脚本运行时间,请给我一首歌的时间。
最后得到一个输出文件内容如下
使用NotePad++自带的插件来进行BASE64解码
发现里面有flag字样,而且给了提示说是如果能修复这个文件就可以得到flag。保存一下文件。
那我们就试着来修复一下,将刚刚保存的文件用HxD打开,观察一下
对照十六进制文件头尾格式我们可以发现这是一个rar文件,因为有RAR文件的结尾标志C43D7B00400700,那么我们给它加上标志头526172211A0700。保存一下。改文件后缀,解压。得到一个flag.txt文件
emmmm……flag不在这里。又看了txt和rar的属性,但是还是没有找到flag。
在这里卡了好久……明天再搞……
============================================================================
不得不佩服出题人想为难我们的脑洞,因为今天用电脑一起看文件的时候,被同学无意中双击了一下之前那个修复好了的rar文件,蹦出来了压缩软件的窗口——
行吧,我找到flag了,它就在rar文件的注释里面呵呵呵呵呵。