ZIP伪加密、CRC校验
文件flag6.zip 说明密码是6位的。
flag6.png
打开WINRAR查看CRC32码
CRC.png
方法一:CRC校验
文件的CRC32编码可以利用python的binascii库的crc32函数计算出来,因此可以进行爆破
import binascii
real = 0x9c4d9a5d
for y in range(100000, 999999):
if real == (binascii.crc32(str(y)) & 0xffffffff): #%x返回16进制
print(y)
输出结果:954288,就是压缩包里txt的内容,即flag。
方法二:zip伪加密
zip伪加密是在文件头的加密标志位做修改,进而再打开文件时识被别为加密压缩包。
伪加密.png
识别.png
- 无加密
压缩源文件数据区的全局加密应当为00 00
且压缩源文件目录区的全局方式位标记应当为00 00
- 假加密
压缩源文件数据区的全局加密应当为00 00
且压缩源文件目录区的全局方式位标记应当为09 00
- 真加密
压缩源文件数据区的全局加密应当为09 00
且压缩源文件目录区的全局方式位标记应当为09 00
[图片上传失败...(image-9cf323-1616723617305)]
用winhex打开题目中的zip文件,发现是伪加密,修改01(0x00000039 处)为00,保存,解压。
本题.png
get.png
打开得到flag:954288.