利用CRC32绕过RAR密码(适合于小文本文件)

原文标题:教你绕过rar密码

  题目有点夸大其词,事实是我也没能想出一个更好的描述来总结这篇文章的内容,所以才写了这么一个标题。

  问题背景:某bbs娱乐区发布49选1的彩票,规则很简单,每次由管理人员设置一个1~49的数字,放在txt文件中,然后再用rar加密,上传到帖子的附件中,然后由会员用论坛货币购买自己所选的号码,对应可以选多少注,每注多少钱等等。

  问题思考:从rar的角度而言,网络上还是有很多暴力破解的软件的,但是如果你的密码强度够好,比如数字字母特殊符号一起再长达几十位,个人电脑几天不关机也破解不出来。所以这种方法最最不可取。当破解代码的代价远远大于破解到的目标的价值时,没有人会去这么做。

[CTF]利用CRC32绕过RAR密码(适合于小文本文件)-LMLPHP

  读者可以自己测试一下,一个字节的txt文本(也就是一个txt文本中只含有一个数字)
  压缩前为大小为1,压缩后大小也为1,加密压缩后大小为16;
  2字节的txt文本,压缩前大小为2,压缩后大小为2,加密压缩后大小为16。
  如果文本使用utf-8编码的话对应文本会比ansi编码大3,加密压缩后依然为16。

**矛盾出现:**rar的压缩文档中是提供一个CRC32的值,这个值是文档在压缩之前的CRC32值,相信很多人都知道:每个不同的文件都有唯一的一个CRC32值,就算是可能有重复的,那么在内容为1~49的这个小范围内的txt文本也不会有重复。为此,我用hash检测工具挨个测试,并列出了一个表。

很明显,没有重复的。(上面是ANSI编码的时候测试的,UTF-8的肯定和这个不一样。)

解决问题:根据上面列出的表格,图片中CRC32为13792798的txt文本文档的内容为23。

反破解方法,在文本中加入其它任意文字即可。呵呵…

03-23 20:59