CTF-MISC-压缩包解密

一、压缩包文件格式

1、RAR文件头格式

组成:标记块、压缩文件头块、文件头块及结尾块

开头:

十六进制编辑器打开:0x526172211A070100

记事本打开:Rar!

2、ZIP文件头格式

十六进制编辑器打开:0x504B0304

记事本打开:PK

3、压缩包文件尾问题

压缩包文件尾部经常可能会被做手脚,要看看文件尾是否有额外的信息

二、压缩包解密方式

首先压缩包解密那肯定是要真加密,如果是伪加密那我们就没有进一步爆破的必要了,所以我们拿到加密压缩包,先判断是否为伪加密,可以节省时间

伪加密判断

CTF-MISC-压缩包解密_第1张图片

若(0000h,6)该位为奇数,则为真加密。若为偶数且打开压缩包需要密码则为伪加密

 

判断为是真加密后,那我们就开始进入到解密了

其解密方法有五种,分别是:暴力破解,字典破解,掩码破解,明文破解,CRC32碰撞。

首先我们要用到我们的爆破神器——ARCHPR

先对ARCHPR的使用做个简单介绍吧,其实还是很简单的,主要很多人可能困于英文

CTF-MISC-压缩包解密_第2张图片

CTF-MISC-压缩包解密_第3张图片

1、暴力破解:

暴力可以解决一切加密,但是要破解到什么时候就不好说了,一般当题目没有了其他破解提示,我们再选择暴力,建议密码长度先6位再8位,密码字符类型先数字后大小写后特殊字符。

2、字典破解

即我们要的密码在一个文件中以下面这样的形式存在,我们要从这个密码的集合中找到我们所需的正确密码

CTF-MISC-压缩包解密_第4张图片

3、掩码加密

通过定义密码的特征和约束条件,逐个尝试不同的字符组合来解密

来个简单的例子

CTF-MISC-压缩包解密_第5张图片

题目给你了密码的约束条件,然后进行破解

4、明文攻击

同一个ZIP压缩包里的文件都是使用同一个密码加密的,所以可以用已知的文件推测出密钥并解密压缩包,例如下:

CTF-MISC-压缩包解密_第6张图片

我们得到一个压缩包,里面有flag文件但是加密,而另一个压缩包里的加密文件,我们以及在压缩包外得到,那么就可以使用已经得到的压缩包里的文件,去破解压缩包里的其他文件。

5、CRC32碰撞

每个文件都有一个CRC(循环冗余校验)32值,即使数据中一个bit发生变化,也会导致CRC32值不同,因此通过不断生成字符串,使其CRC32值和题目文件的CRC32值进行对比,不需要压缩包密码就可以得到文件内容。

简单例子,假如文件有三个字节且知道CRC32的值为0xEC40CA13,可以写下面这个python脚本

CTF-MISC-压缩包解密_第7张图片

 

 

你可能感兴趣的:(网络安全,python,密码学,web安全)