【CTF-MISC-压缩包】使用bkcrack破解压缩包获取png,用ZigZag还原
2026/7/25 20:49:57 网站建设 项目流程

题目

2026 DesCTF\MISC\Real sign in

The picture for pixls ,Please find the secret and send it to the WeChat official account background to get the flag!!

WeChat official account is 天命团队

解题过程

工具准备

bkcrack下载地址:
https://github.com/kimci86/bkcrack/releases/tag/v1.8.1

将bkcarck.exe放到待解密的压缩包下

破解步骤

1. 查看压缩文件内容

首先,我们需要查看压缩文件中包含的文件信息:

./bkcrack.exe--list"challenge (2).zip"

输出结果

Archive: challenge (2).zip Index Encryption Compression CRC32 Uncompressed Packed size Name ----- ---------- ----------- -------- ------------ ------------ ---------------- 0 ZipCrypto Store e9a0f4d1 45927 45939 challenge.png

从结果可以看出,压缩文件中包含一个challenge.png文件,大小为 45927 字节,使用了 ZipCrypto 加密方式。

2. 利用已知明文破解

由于 PNG 文件有固定的文件头,我们可以使用这个作为已知明文来破解 ZIP 密码。PNG 文件的文件头为89504E470D0A1A0A(十六进制)。

./bkcrack.exe-C"challenge (2).zip"-cchallenge.png-x089504E470D0A1A0A0000000D

参数说明

  • -C: 指定包含密文的 ZIP 档案
  • -c: 指定 ZIP 档案中的密文文件
  • -x: 指定已知明文的偏移和内容(十六进制)

输出结果

[15:39:03] Z reduction using 5 bytes of known plaintext 100.0 % (5 / 5) [15:39:03] Attack on 1075319 Z values at index 6 Keys: 5eb34ede c49019bf 815834b9 46.4 % (499110 / 1075319) Found a solution. Stopping. You may resume the attack with the option: --continue-attack 499110 [15:45:09] Keys 5eb34ede c49019bf 815834b9

成功破解出了 ZIP 文件的内部密钥:5eb34ede c49019bf 815834b9

3. 解密压缩文件

使用破解得到的密钥,我们可以创建一个解密后的压缩文件:

./bkcrack.exe-C"challenge (2).zip"-k5eb34ede c49019bf 815834b9-Ddecrypted.zip

参数说明

  • -k: 指定内部密码表示(三个 32 位整数的十六进制)
  • -D: 创建一个解密后的 ZIP 档案副本

输出结果

[15:45:17] Writing decrypted archive decrypted.zip 100.0 % (1 / 1)

4. 解压解密后的文件

使用 PowerShell 解压解密后的 ZIP 文件,解压后,我们可以看到challenge.png文件已经成功解压到当前目录

Expand-Archive-Path decrypted.zip-DestinationPath.

5. 查看结果

查看图片,疑似是ZigZag之字形图片编码后的结果

6. 查看结果

我编写了一个在线的静态网站,用于ZigZag之字形图片编码和解码

https://echoofcloud.github.io/ZigZag_Image_Processor/

7. 识别二维码

二维码里面的内容为

I_love_DesCTF

8. 获取flag

根据题目提示:
WeChat official account is 天命团队

关注该公众号,发送I_love_DesCTF,得到flag

答案

DesCTF{Have fun and enjoy the challenges ahead!!!}

附录:bkcrack技术原理

1. 已知明文攻击

bkcrack 使用 Biham 和 Kocher 的已知明文攻击方法来破解传统的 ZIP 加密。这种攻击方法利用了 ZIP 加密算法的弱点,通过已知的明文和对应的密文来恢复加密密钥。

2. PNG 文件头

PNG 文件有固定的文件头格式:

  • 字节 0-7:89 50 4E 47 0D 0A 1A 0A(PNG 签名)
  • 字节 8-11:00 00 00 0D(IHDR 块长度)
  • 字节 12-15:49 48 44 52(IHDR 块类型)

我们使用了前 12 字节作为已知明文,这足够 bkcrack 进行破解。

3. 破解过程

  1. Z 约简:使用已知明文减少可能的密钥空间
  2. 密钥搜索:在减少后的密钥空间中搜索正确的密钥
  3. 密钥验证:验证找到的密钥是否正确

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询