攻防世界-密码学-你猜猜

1. 题目信息

附件是一个文本文件,里面是一串16进制数据。

2. 分析

504B0304开头一般代表zip数据(另外还有526172211a0701开头代表rar数据,377abcaf271c开头代表7z数据),于是将这一串16进制数据另存为一个zip文件,不用说,压缩时肯定进行了加密,使用fcrackzip工具进行破解。

3. 解题

首先使用Python将16进制数据另存为一个zip文件:

from Crypto.Util.number import long_to_bytes

s=0x504B03040A0001080000626D0A49F4B5091F1E0000001200000008000000666C61672E7478746C9F170D35D0A45826A03E161FB96870EDDFC7C89A11862F9199B4CD78E7504B01023F000A0001080000626D0A49F4B5091F1E00000012000000080024000000000000002000000000000000666C61672E7478740A0020000000000001001800AF150210CAF2D1015CAEAA05CAF2D1015CAEAA05CAF2D101504B050600000000010001005A000000440000000000
with open('data.zip','wb') as f:
    f.write(long_to_bytes(s))

再使用fcrackzip工具破解密码:

$ fcrackzip -b -c '1' -l 4-8 -u data.zip

PASSWORD FOUND!!!!: pw == 123456

解密得到flag.txt,里面保存着flag。

原文地址:https://www.cnblogs.com/coming1890/p/13498551.html