压缩包提示操作异常/压缩包操作失败-新手白帽子记录贴

压缩包提示操作异常/压缩包操作失败-新手白帽子记录贴

我正在参加「创意开发 投稿大赛」详情请看:掘金创意开发大赛来了!

前言

CTF-MISC中关于压缩包的隐写题目也是经常出的,今天带给大家的是ZIP压缩包的一些谜之操作,希望大家有所收获。

简介

ZIP(文件头,文件尾:50 4B 03 04,50 4B 05 06)百度详细解释:

ZIP文件格式是一种数据压缩和文档储存的文件格式,原名,发明者为菲尔·卡茨(Phil Katz),他于1989年1月公布了该格式的资料。ZIP通常使用后缀名“.zip”,它的MIME格式为/zip。当前,ZIP格式属于几种主流的压缩格式之一,其竞争者包括RAR格式以及开放源码的7z格式。从性能上比较,RAR及7z格式较ZIP格式压缩率较高,而7-Zip由于提供了免费的压缩工具而逐渐在更多的领域得到应用。从 ME操作系统开始内置对zip格式的支持,即使用户的计算机上没有安装解压缩软件,也能打开和制作zip格式的压缩文件,OS X和流行的Linux操作系统也对zip格式提供了类似的支持。因此如果在网络上传播和分发文件,zip格式往往是最常用的选择。

伪加密

有一些ZIP加密有可能是伪加密,并不需要任何密码。具体原理如下:

文件数据区

50 4B 03 04:这是头文件标记 ()

14 00:解压文件所需 版本

00 00:全局方式位标记(判断有无加密)

08 00:压缩方式

5A 7E:最后修改文件时间

F7 46:最后修改文件日期

文件目录区

50 4B 01 02:目录中文件文件头标记 ()

1F 00:压缩使用的 版本

14 00:解压文件所需 版本

00 00:全局方式位标记(判断是否为伪加密)

08 00:压缩方式

5A 7E:最后修改文件时间

F7 46:最后修改文件日期

判断方式:

压缩源文件数据区的全局方式位标记应当为 00 00 (50 4B 03 04 14 00 后)

且压缩源文件目录区的全局方式位标记应当为 09 00 (50 4B 00 后)

解决方法(只提供部分):

1.使用命令进行分解

2.尝试修改数据破除伪加密

3.使用解压工具进行修复

真加密

若压缩包是真正需要密码的时候,我们应该怎么办呢。

爆破

有的时候考察爆破,常见的是数字爆破,也会有单纯字母的爆破。

使用工具:

密码有时候不是通过爆破获得的,出题人可能以其他的形式隐写密码。

明文攻击

明文攻击的原理:攻击者掌握了某段明文和对应密文求解密钥

对于zip文件来说,进行明文攻击的条件是:有一个单独的文件已知且进行压缩之后的CRC值与某个包含此文件的压缩包的CRC值相等。

满足以上要求便可以尝试明文攻击来破解。

CRC32爆破

CRC32校验码就是用来检验文件内的数据是否正确的。信息不能从校验码复原,因为加密过程有损失,或者本来就没把完整的信息丢进去,但是可以从校验码发现信息是否有修改,因为校验码是以信息为明文加密的。

若信息足够小,校验码就可以用来检验爆破的枚举的信息是否是从前的信息。也就是我们所说的爆破。在网上可以找到脚本去爆破相应的题目。

#!/usr/bin/env python 
# -*- coding:utf-8 -*-
# python3
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 = "file_path"+'out' + str(i) + '.zip'
        crc = zipfile.ZipFile(file, 'r').getinfo('data.txt').CRC
        CrackCrc(crc)
        print('\r' + "loading:{:%}".format(float((i + 1) / 68)), end='')
dic = string.ascii_letters + string.digits + '+/='
f = open('out.txt', 'w')
print("\nCRC32begin")
CrackZip()
print("CRC32finished")
f.close()

结尾

以上给大家带来的是一些ZIP压缩包的一些套路,是不是很有创意,大家学会了也可以自己尝试加密或破解一下,若大家还有知道其他的创意套路也可以在评论区留言互相学习,感谢阅读。

网络安全学习路线图(思维导图)

网络安全学习路线图可以是一个有助于你规划学习进程的工具。你可以在思维导图上列出不同的主题和技能,然后按照逻辑顺序逐步学习和掌握它们。这可以帮助你更清晰地了解自己的学习进展和下一步计划。

1. 网络安全视频资料

2. 网络安全笔记/面试题

3. 网安电子书PDF资料

如果你向网安入门到进阶的全套资料,我都打包整理好了,需要学习的小伙伴可以V我找我拿~

学网络安全/学黑客,零基础资料整理来啦~~~

~

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值