发现未压缩的data.txt文件大小只有4个字节,而zip文件中包含未压缩的data.txt文件的CRC32校验值,这里我们可以进行爆破。通过爆破得到out67.zip的内容为AA==,用base64对所得的整个内容进行解码,写入zip.dat文件。
利用ultraledit查看zip.dat
通过文件开头的CF 90 73 我们可以知道这是一个RAR格式的压缩文件,但是少了52 61 72 21 1A 07 00这7个字节的文件头,加上RAR格式的文件头以后,我们再次打开发现zip.rar包含flag.txt,但是flag.txt的内容却是:fix the file and get the flag,说明我们没有完全修复rar文件。
根据对RAR文件格式的研究,发现zip.rar中还有一个名为CMT的文件,然后把该文件的压缩文件头AA 3E 7A....修改为AA 3E 74...后保存,再次打开即可获得包含flag的文件CMT。
附件为从68个文件中提取data.txt内容,然后用base64解码保存成zip.dat文件的Python代码。