解决zip伪加密的另一方法-爆破


hbctf的一个题–>http://hbctf-1252906577.costj.myqcloud.com/misc/flag6.zip

先来writeup:

解压软件打开,可以看到CRC32值。

mark

因为题目提示了是6位数字,匹配CRC32爆破。

import binascii
real = 0x9c4d9a5d
for y in range(100000, 999999):
    if real == (binascii.crc32(str(y)) & 0xffffffff):
        print(y)

CRC的全称是循环冗余校验

CRC32:CRC本身是“冗余校验码”的意思,CRC32则表示会产生一个32bit(8位十六进制数)的校验值。

binascii:二进制和ASCII互转以及其他进制转换

​ 由于CRC32产生校验值时源数据块的每一个bit(位)都参与了计算,所以数据块中即使只有一位发生了变化,也会得到不同的CRC32值.再加上题目提示了6位数字,这就大大缩小了范围,不同的数的CRC32值是不同的,所以可以通过循环匹配来爆破出文件值,即flag。


文章作者: LANVNAL
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 LANVNAL !
 上一篇
陕西省网络空间安全技术大赛WriteUp 陕西省网络空间安全技术大赛WriteUp
陕西省网络空间安全技术大赛WriteUp1.签到(10分) base64解密 2.签到(50分) 看一下源码~ <!DOCTYPE html> <html lang="en"> <he
2017-04-15
下一篇 
关于zip伪加密 关于zip伪加密
关于zip伪加密​ 通过修改zip的16进制文件中加密标志位,达到查看文件要求输入密码但并没有设置密码,即伪加密(并没有真的对其加密)的目的,这里就整理分析一下zip文件的结构,和解决zip伪加密问题的下手部位。 zip文件的组成z
2017-04-14
  目录