0


入坑CTF的第一篇CRC32爆破【MISC】

最近遇到一道CTF的一道题,大意是:

一个被压缩的Zip压缩包,在无法使用加密口令解压的情况下,如何获取其中文本文件的内容。

思路:对于文件大小<6B的文件,可以利用CRC32的校验值,爆破文本内容。

我自己做了一个压缩包,没有使用密码加密,测试一下(以4字节的文件为例):

from binascii import crc32
import string
import zipfile
dic=string.printable
def CrackCrc(crc):
    for i in dic :
        # print (i)
        for j in dic:
            for p in dic:
                for q in dic:
                    s=i+j+p+q
                    # print (crc32(bytes(s,'ascii')) & 0xffffffff)
                    if crc == (crc32(bytes(s,'ascii')) & 0xffffffff):
                        print (s)
                        return

def getcrc32(fname):
    l=[]
    file = fname
    f = zipfile.ZipFile(file, 'r')
    global fileList
    fileList =f.namelist ()
    print (fileList)
    # print (type(fileList))
    for filename in fileList:
        Fileinfo = f.getinfo(filename)
        # print(Fileinfo)
        crc = Fileinfo.CRC
        # print ('crc',crc)
        l.append(crc)
    return l

def main (filename=None):
    l = getcrc32(filename)
    # print(l)
    for i in range(len(l)):
        print(fileList[i], end='的内容是:')
        CrackCrc(l[i])

if __name__  == "__main__":
    main ('test.zip')

对于6字节文件的CRC32爆破,在GitHub上有爆破脚本,使用截图如下:

使用命令:python crc32.py reverse 0x93C2BE07反推出(所有可能的)6位长度的文本内容。

下载地址:GitHub - theonlypwner/crc32: CRC32 tools: reverse, undo/rewind, and calculate hashesCRC32 tools: reverse, undo/rewind, and calculate hashes - GitHub - theonlypwner/crc32: CRC32 tools: reverse, undo/rewind, and calculate hasheshttps://github.com/theonlypwner/crc32

标签: 网络安全

本文转载自: https://blog.csdn.net/weixin_45616281/article/details/127928951
版权归原作者 01Dr1ver 所有, 如有侵权,请联系我们删除。

“入坑CTF的第一篇CRC32爆破【MISC】”的评论:

还没有评论