每日一题CTF 0001
博兹瓦纳-爆破?其实有更好的办法
来源:HBCTF第一场WP
类别:zip伪加密、CRC校验
来源:http://www.moonsos.com/post/256.html
用到工具:HxD(16进制编辑器) 或 winhex
WINRAR 或 好压 (查看 CRC32)
文件下载地址:http://hbctf-1252906577.costj.myqcloud.com/misc/flag6.zip
百度网盘下载:链接:http://pan.baidu.com/s/1bpaUSwf 密码:g044
方法一:
解题思路:
CRC32是由数据的每一位都参加的运算得出的,已知flag是6位数,可以爆破
用压索软件打开能看到crc32如图:
题目又说了6位数,写脚本爆破之得到答案,脚本如下:
import binascii
real = 0x9c4d9a5d
for y in range(100000, 999999):
if real == (binascii.crc32(str(y)) & 0xffffffff):
print(y)
0 x 0x9c4d9a5d 是16进制的数,可以转换成为十进制的2622331485
参考文献:RAR加密原理
参考文献:利用CRC32绕过RAR密码(适合于小文本文件)
参考文献:python求crc32值的方法
方法二:
有人会想到爆破压缩包,其实这道题并没有加密,只是修改了一位数而已,用winhex或者HxD打开压缩包,修改如图位置为00,保存后就可以直接解压了,关于原理可以百度“zip伪加密”