zippy-crc32碰撞解题

1.下载并解压文件

2.打开文件,发现英文开头都是一样的,数字不一样,打开其中一个zip包,发现里面的txt文件名称一样,这个时候大概率就要用到crc32脚本碰撞

3.crc32脚本内容

这里需要注意的是下图红色框里的内容,注释:

(0,53):表示的是下载文件夹中,一共有从0到53个zip文件

chunk:表示的是同样的zip文件同样的英文字母

data.txt:表示的是每个zip里面一样的data.txt文件

out.txt:表示将结果输出到out.txt文件,这个需要在同目录下建一个out.txt文件

完整版脚本:

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,53):
   file = 'chunk'+str(i)+'.zip'
   crc = zipfile.ZipFile(file,'r').getinfo('data.txt').CRC
   CrackCrc(crc)
   
dic = string.ascii_letters + string.digits + '+/='

f = open('out.txt','w')
CrackZip()
print("CRC32")
f.close

如图,crc32脚本和输出文件要和zip文件放在同目录下

4.打开cmd命令行,输入切换路径命令,然后执行crc32脚本,出现CRC32时,则说明已经碰撞结束,可以打开out.txt文件查看

5.下图为crc32碰撞输出到out.txt文件的内容,可以看到是base64编码。由此需要用到base64解码工具,

1.out.txt内容

2.这里用到的是Notepad++,解码方式如下图,也可以用其他工具进行解码

3.在解码前先将原内容全选复制,然后在全选内容进行base64解码,再将原内容复制到解码后的内容后,不加的话会出现打不开,文件损坏的格式问题

4.上图的内容,点击【文件】--【另存为】

5.保存类型为:All types (*.*)

文件名为:out.zip

6.打开out.zip文件,发现需要输入密码

下载并使用Ziperello来暴力破解密码

7.输入密码,获取flag值

flag:flag{i_z1pp3d_a_zip_w1th_sum_zips}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值