CTF论坛 - CTF交流社区

[新手入门] 杂项中zip的总结

2018-8-18 10:18
4752

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
### 0x00:关于zip的一些基础知识
文件头:50 4B 03 04
50 4B 16进制ascii转字符后是zip格式文件创始人的名称的缩写P K
0x50 => P
0x4B => K

zip压缩后压缩包内每个文件都有一个CRC值,CRC值只和文件内容有关

### 0x01:用ZipCenOp破解伪加密
先切换到ZipCenOp.jar的目录,然后将zip伪加密的压缩包拷到同级目录下,然后执行下列命令后就可以正常解压了
```
java -jar ZipCenOp.jar r 11.zip
```

该工具除了破解伪加密,还可以将一个正常的压缩包进行伪加密
比如有一个1.zip压缩包
```
java -jar ZipCenOp.jar r 1.zip
```
如果想要试一下伪加密破解的,可以先用第二条命令对zip进行伪加密,然后再用第一条命令来解除伪加密
### 0x02:用Ziperello暴力破解zip压缩包
Ziperello的使用很简单
第一步选择待破解zip包,点击next
![]()

第二步选择破解方式
![]()
一般选择字典破解,进去后选择字典,再设置好单词的变化就ok了
![]()
然后点击开始破解:
![]()

### 0x03:用AZPR实施已知明文攻击
利用前提:有一个zip中的文件
原理:同一个zip包里所有文件都是使用同一个加密密钥来加密的
![]()
比如我们有个aaa.zip文件,里面有个aaa.txt和flag.txt文件,我们想知道flag.txt文件的内容,但是压缩文件有密码
![]()
而如果我们现在已经有了aaa.txt文件,那么就可以通过ZAPR实施已知明文攻击得到压缩包密码
首先我们需要包aaa.txt压缩为zip文件aa.zip
然后打开AZPR
![]()
设置好了后点击start,然后等待一会儿密码就出来了
![]()

### 0x04:CRC32碰撞攻击
由于压缩文件的CRC32值是根据文件内容来生成的,因此当文件内容比较简单的时候,我们可以通过爆破CRC32值来得到文件内容
比如我们新建一个文件a.txt,然后内容为9314,然后将其压缩加密(当然加不加密都无所谓,我们的目的是通过CRC直接爆破文件内容,而加密与不加密文件的CRC32值都是相同的)
![]()
a.txt的crc32值为0x6da3c0f9
再python中我们可以使用binascii模块很轻易的计算一个字符串的CRC32值
我们先定义一个得到字符串crc32值的函数,得到的值用十六进制表示:
```
import binascii
def getcrc32(str):
    return '0x%x' % (binascii.crc32(str)&0xffffffff)
```
如果我们知道文件内容为四位数字,那么我们可以调用这个函数来爆破
```
crc32 = "0x6da3c0f9"
for i in range(0, 9999):
    stri = str(i)
    if len(stri)<4:
        extr_len = 4-len(stri)
        stri = extr_len * "0"+stri # 补足4位
    if getcrc32(stri) == crc32:
        print stri
```
然后完整的脚本为:
```
#encoding:utf-8
import binascii
def getcrc32(str):
    return '0x%x' % (binascii.crc32(str)&0xffffffff)
crc32 = "0x6da3c0f9"
for i in range(0, 9999):
    stri = str(i)
    if len(stri)<4:
        extr_len = 4-len(stri)
        stri = extr_len * "0"+stri # 补足4位
    if getcrc32(stri) == crc32:
        print stri
```
运行结果:
![]()
成功爆破出了文件内容,当然crc32碰撞的使用局限性还是很大在现实环境中很难碰到
分享到 :
1 人收藏

2 个回复

倒序浏览
singo  炉火纯青 | 2018-8-29 22:23:55
学习了  非常感谢
alchemist  初窥堂奥 | 2018-9-2 19:55:51
受教了,谢谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Drac0nids

初窥堂奥

积分: 191 帖子: 1 精华: 0

楼主热帖

Powered by Bugku! X3.2 © 2017 CTFbbs.

返回顶部