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。
