【misc]-压缩包-crc32

部署运行你感兴趣的模型镜像

打开压缩文件,发现是加密的,且3个小文件大小是6k,就需要用github上crc32.py破解,对于小于6K的,可以参考以下代码:

import string
import binascii
import zipfile

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

对于6字节文件的CRC32爆破,在GitHub上有爆破脚本,:
python crc32.py reverse 0x93C2BE07反推出(所有可能的)6位长度的文本内容
https://github.com/theonlypwner/crc32/blob/main/crc32.py
'''
dic = string.ascii_letters + string.digits + '+/='


def crash_CRC32(crc):
    for a in dic:
        for b in dic:
            for c in dic:
                for d in dic:
                    s = a + b + c + d
                    encoded_s = s.encode('utf-8')  # 编码后的 s
                    if binascii.crc32(encoded_s) & 0xffffffff == crc:
                        return s
    return 0


def get_CRC32(zip_file_name):
    # 打开 zip 文件
    with zipfile.ZipFile(zip_file_name, 'r') as zip:
        # 使用字典来存储文件名与其 CRC32 值的映射
        crc_values = {}
        # 遍历 zip 文件中的每一个条目
        for zip_info in zip.infolist():
            # 将文件名和对应的 CRC32 值存入字典
            crc_values[zip_info.filename] = zip_info.CRC
        return crc_values

zip_name=r'F:\ctf\c5d9e626.zip'
crc_list=get_CRC32(zip_name)
str=''
for j in crc_list.items():
    # 将获取的CRC32放入函数进行破解,然后将值进行拼接
    #print(j)
    crc = j[1]
    crc = crash_CRC32(crc)
    if crc == 0:
        print('发生未知错误')
        exit(0)
    str += crc
    print(str)
print(str)
python crc32.py reverse 0XCC86365B
python crc32.py reverse 0XBCEE7ED5
python crc32.py reverse 0XCCCA7E74

最连贯的结果:

forum_91ctf_com_66

解压后发现convert.txt是01构成的,猜测是二维码,将二进制转为字符,是base64编码的图像。base64解码保存为图像,打开如图,扫码得到 flag{owid0-o91hf-9iahg}

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值