好多压缩包

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文件的注释里面呵呵呵呵呵。


猜你喜欢

转载自blog.csdn.net/preserphy/article/details/79473094