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。