在刷BUU时碰到这题(题目地址),题目给出了许多压缩包,但是没有一点头绪,看了看别人的wp才知道是crc爆破,在此记录一下这个知识点。
正文
CRC全称Cyclic Redundancy Check,也就是循环冗余校验码,是一种能力相当强的检错、纠错码,并且实现编码和检码的电路比较简单,常用于串行传送(二进制位串沿一条信号线逐位传送)的辅助存储器与主机的数据通信和计算机网络中。
总而言之,就是每一个文件都有它唯一的CRC32值,即便数据中一个bit发生变化,也会导致CRC32值不同。若是知道一段数据的长度和CRC32值,便可穷举数据,与其CRC32对照,以此达到暴力猜解的目的。但通常只适用于较小文本文件。
自己写的脚本总出错,于是借用了大佬的脚本https://blog.csdn.net/u011377996/article/details/79360820
1 | import zipfile |
碰撞完成后得到一串base64编码,解码一看,要修复文件
查了点资料后发现这是一个rar压缩包 https://blog.csdn.net/vevenlcf/article/details/51538837,
修改一下文件,在文件前面加上补上52 61 72 21 1A 07 00 后保存
打开压缩包一看,在备注处看到flag